[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-hybridgroup--gocv":3,"tool-hybridgroup--gocv":61},[4,18,26,36,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",141543,2,"2026-04-06T11:32:54",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,14],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,60],"视频",{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":110,"forks":111,"last_commit_at":112,"license":113,"difficulty_score":114,"env_os":115,"env_gpu":116,"env_ram":117,"env_deps":118,"category_tags":124,"github_topics":125,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":144,"updated_at":145,"faqs":146,"releases":177},4441,"hybridgroup\u002Fgocv","gocv","Go package for computer vision using OpenCV 4 and beyond. Includes support for DNN, CUDA, OpenCV Contrib, and OpenVINO.","gocv 是一个让 Go 语言开发者能够直接调用 OpenCV 计算机视觉功能的开源工具包。它解决了 Go 语言在图像处理、视频分析及人工智能领域缺乏原生高效支持的痛点，使开发者无需切换编程语言即可利用成熟的 OpenCV 生态。\n\n无论是需要快速构建原型的企业开发者，还是致力于算法研究的技术人员，只要熟悉 Go 语言，都能通过 gocv 轻松实现摄像头采集、人脸检测、物体识别等复杂功能。从简单的“读取视频流”到复杂的“深度学习推理”，gocv 提供了流畅的开发体验。\n\n其核心技术亮点在于全面支持 OpenCV 4 及以上版本，并集成了 DNN（深度神经网络）模块，允许直接加载和运行训练好的模型。更值得一提的是，gocv 原生支持 NVIDIA CUDA 加速和 Intel OpenVINO  toolkit，这意味着在处理高性能计算任务时，可以充分利用 GPU 或专用硬件加速，显著提升运行效率。配合跨平台特性（支持 Linux、macOS、Windows 及 Docker），gocv 成为了连接 Go 语言简洁性与计算机视觉强大能力的理想桥梁。","# GoCV\n\n[![GoCV](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_1e88deddfa9f.jpg)](http:\u002F\u002Fgocv.io\u002F)\n\n[![Go Reference](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgocv.io\u002Fx\u002Fgocv.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgocv.io\u002Fx\u002Fgocv)\n[![Linux](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Flinux.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Flinux.yml)\n[![macOS](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fmacos.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fmacos.yml)\n[![Windows](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fwindows.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fwindows.yml)\n[![Go Report Card](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_2b4a70945b89.png)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fhybridgroup\u002Fgocv)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fblob\u002Frelease\u002FLICENSE.txt)\n\nThe GoCV package provides Go language bindings for the [OpenCV 4](http:\u002F\u002Fopencv.org\u002F) computer vision library.\n\nThe GoCV package supports the latest releases of Go and OpenCV (v4.12.0) on Linux, Docker, macOS, and Windows. Our ongoing mission is help the Go programming language be a \"first-class\" client compatible with the latest developments in the OpenCV ecosystem.\n\nGoCV supports [CUDA](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCUDA) for hardware acceleration using Nvidia GPUs. Check out the [CUDA README](.\u002Fcuda\u002FREADME.md) for more info on how to use GoCV with OpenCV\u002FCUDA.\n\nGoCV also supports [Intel OpenVINO](https:\u002F\u002Fsoftware.intel.com\u002Fen-us\u002Fopenvino-toolkit). Check out the [OpenVINO README](.\u002Fopenvino\u002FREADME.md) for more info on how to use GoCV with the Intel OpenVINO toolkit.\n\n## How to use\n\n### Hello, video\n\nThis example opens a video capture device using device \"0\", reads frames, and shows the video in a GUI window:\n\n```go\npackage main\n\nimport (\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc main() {\n\twebcam, _ := gocv.OpenVideoCapture(0)\n\twindow := gocv.NewWindow(\"Hello\")\n\timg := gocv.NewMat()\n\n\tfor {\n\t\twebcam.Read(&img)\n\t\twindow.IMShow(img)\n\t\twindow.WaitKey(1)\n\t}\n}\n```\n\n### Face detect\n\n![GoCV](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_376f23a74ef6.jpg)\n\nThis is a more complete example that opens a video capture device using device \"0\". It also uses the CascadeClassifier class to load an external data file containing the classifier data. The program grabs each frame from the video, then uses the classifier to detect faces. If any faces are found, it draws a green rectangle around each one, then displays the video in an output window:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"image\u002Fcolor\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc main() {\n    \u002F\u002F set to use a video capture device 0\n    deviceID := 0\n\n\t\u002F\u002F open webcam\n\twebcam, err := gocv.OpenVideoCapture(deviceID)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer webcam.Close()\n\n\t\u002F\u002F open display window\n\twindow := gocv.NewWindow(\"Face Detect\")\n\tdefer window.Close()\n\n\t\u002F\u002F prepare image matrix\n\timg := gocv.NewMat()\n\tdefer img.Close()\n\n\t\u002F\u002F color for the rect when faces detected\n\tblue := color.RGBA{0, 0, 255, 0}\n\n\t\u002F\u002F load classifier to recognize faces\n\tclassifier := gocv.NewCascadeClassifier()\n\tdefer classifier.Close()\n\n\tif !classifier.Load(\"data\u002Fhaarcascade_frontalface_default.xml\") {\n\t\tfmt.Println(\"Error reading cascade file: data\u002Fhaarcascade_frontalface_default.xml\")\n\t\treturn\n\t}\n\n\tfmt.Printf(\"start reading camera device: %v\\n\", deviceID)\n\tfor {\n\t\tif ok := webcam.Read(&img); !ok {\n\t\t\tfmt.Printf(\"cannot read device %v\\n\", deviceID)\n\t\t\treturn\n\t\t}\n\t\tif img.Empty() {\n\t\t\tcontinue\n\t\t}\n\n\t\t\u002F\u002F detect faces\n\t\trects := classifier.DetectMultiScale(img)\n\t\tfmt.Printf(\"found %d faces\\n\", len(rects))\n\n\t\t\u002F\u002F draw a rectangle around each face on the original image\n\t\tfor _, r := range rects {\n\t\t\tgocv.Rectangle(&img, r, blue, 3)\n\t\t}\n\n\t\t\u002F\u002F show the image in the window, and wait 1 millisecond\n\t\twindow.IMShow(img)\n\t\twindow.WaitKey(1)\n\t}\n}\n```\n\n### More examples\n\nThere are examples in the [cmd directory](.\u002Fcmd) of this repo in the form of various useful command line utilities, such as [capturing an image file](.\u002Fcmd\u002Fsaveimage), [streaming mjpeg video](.\u002Fcmd\u002Fmjpeg-streamer), [counting objects that cross a line](.\u002Fcmd\u002Fcounter), and [using OpenCV with a DNN for face tracking](.\u002Fcmd\u002FfacedetectYN).\n\n## How to install\n\nTo install GoCV, you must first have the matching version of OpenCV installed on your system. The current release of GoCV requires OpenCV 4.12.0.\n\nWe have instructions for Linux, macOS, Windows, and other platform options as well.\n\n### Linux\n\nPlease see our web site at https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Flinux\u002F\n\n### macOS\n\nPlease see our web site at https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fmacos\u002F\n\n### Windows\n\nPlease see our web site at https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fwindows\u002F\n\n### Docker\n\nPlease see our web site at https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fdocker\u002F\n\n### Android\n\nThere is some work in progress for running GoCV on Android using Gomobile. For information on how to install OpenCV\u002FGoCV for Android, please see:\nhttps:\u002F\u002Fgist.github.com\u002Fogero\u002Fc19458cf64bd3e91faae85c3ac8874120\n\nSee original discussion here:\nhttps:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F235\n\n## Profiling\n\nSince memory allocations for images in GoCV are done through C based code, the go garbage collector will not clean all resources associated with a `Mat`. As a result, any `Mat` created _must_ be closed to avoid memory leaks.\n\nTo ease the detection and repair of the resource leaks, GoCV provides a `Mat` profiler that records when each `Mat` is created and closed. Each time a `Mat` is allocated, the stack trace is added to the profile. When it is closed, the stack trace is removed. See the [runtime\u002Fpprof documentation](https:\u002F\u002Fgolang.org\u002Fpkg\u002Fruntime\u002Fpprof\u002F#Profile).\n\nIn order to include the MatProfile custom profiler, you MUST build or run your application or tests using the `-tags matprofile` build tag. For example:\n\n    go run -tags matprofile cmd\u002Fversion\u002Fmain.go\n\nYou can get the profile's count at any time using:\n\n```go\ngocv.MatProfile.Count()\n```\n\nYou can display the current entries (the stack traces) with:\n\n```go\nvar b bytes.Buffer\ngocv.MatProfile.WriteTo(&b, 1)\nfmt.Print(b.String())\n```\n\nThis can be very helpful to track down a leak. For example, suppose you have\nthe following nonsense program:\n\n```go\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc leak() {\n\tgocv.NewMat()\n}\n\nfunc main() {\n\tfmt.Printf(\"initial MatProfile count: %v\\n\", gocv.MatProfile.Count())\n\tleak()\n\n\tfmt.Printf(\"final MatProfile count: %v\\n\", gocv.MatProfile.Count())\n\tvar b bytes.Buffer\n\tgocv.MatProfile.WriteTo(&b, 1)\n\tfmt.Print(b.String())\n}\n```\n\nRunning this program produces the following output:\n\n```\ninitial MatProfile count: 0\nfinal MatProfile count: 1\ngocv.io\u002Fx\u002Fgocv.Mat profile: total 1\n1 @ 0x40b936c 0x40b93b7 0x40b94e2 0x40b95af 0x402cd87 0x40558e1\n#\t0x40b936b\tgocv.io\u002Fx\u002Fgocv.newMat+0x4b\t\u002Fgo\u002Fsrc\u002Fgocv.io\u002Fx\u002Fgocv\u002Fcore.go:153\n#\t0x40b93b6\tgocv.io\u002Fx\u002Fgocv.NewMat+0x26\t\u002Fgo\u002Fsrc\u002Fgocv.io\u002Fx\u002Fgocv\u002Fcore.go:159\n#\t0x40b94e1\tmain.leak+0x21\t\t\t\u002Fgo\u002Fsrc\u002Fgithub.com\u002Fdougnd\u002Fgocvprofexample\u002Fmain.go:11\n#\t0x40b95ae\tmain.main+0xae\t\t\t\u002Fgo\u002Fsrc\u002Fgithub.com\u002Fdougnd\u002Fgocvprofexample\u002Fmain.go:16\n#\t0x402cd86\truntime.main+0x206\t\t\u002Fusr\u002Flocal\u002FCellar\u002Fgo\u002F1.11.1\u002Flibexec\u002Fsrc\u002Fruntime\u002Fproc.go:201\n```\n\nWe can see that this program would leak memory. As it exited, it had one `Mat` that was never closed. The stack trace points to exactly which line the allocation happened on (line 11, the `gocv.NewMat()`).\n\nFurthermore, if the program is a long running process or if GoCV is being used on a web server, it may be helpful to install the HTTP interface )). For example:\n\n```go\npackage main\n\nimport (\n\t\"net\u002Fhttp\"\n\t_ \"net\u002Fhttp\u002Fpprof\"\n\t\"time\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc leak() {\n\tgocv.NewMat()\n}\n\nfunc main() {\n\tgo func() {\n\t\tticker := time.NewTicker(time.Second)\n\t\tfor {\n\t\t\t\u003C-ticker.C\n\t\t\tleak()\n\t\t}\n\t}()\n\n\thttp.ListenAndServe(\"localhost:6060\", nil)\n}\n\n```\n\nThis will leak a `Mat` once per second. You can see the current profile count and stack traces by going to the installed HTTP debug interface: [http:\u002F\u002Flocalhost:6060\u002Fdebug\u002Fpprof\u002Fgocv.io\u002Fx\u002Fgocv.Mat](http:\u002F\u002Flocalhost:6060\u002Fdebug\u002Fpprof\u002Fgocv.io\u002Fx\u002Fgocv.Mat?debug=1).\n\n## How to contribute\n\nPlease take a look at our [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) document to understand our contribution guidelines.\n\nThen check out our [ROADMAP.md](.\u002FROADMAP.md) document to know what to work on next.\n\n## Why this project exists\n\nThe [https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv](https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv) package for Go and OpenCV did not support any version above OpenCV 2.x, and work on adding support for OpenCV 3 had stalled for over a year, mostly due to the complexity of [SWIG](http:\u002F\u002Fswig.org\u002F). That is why we started this project.\n\nThe GoCV package uses a C-style wrapper around the OpenCV 4 C++ classes to avoid having to deal with applying SWIG to a huge existing codebase. The mappings are intended to match as closely as possible to the original OpenCV project structure, to make it easier to find things, and to be able to figure out where to add support to GoCV for additional OpenCV image filters, algorithms, and other features.\n\nFor example, the [OpenCV `videoio` module](https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv\u002Ftree\u002Fmaster\u002Fmodules\u002Fvideoio) wrappers can be found in the GoCV package in the `videoio.*` files.\n\nThis package was inspired by the original https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv project, the blog post https:\u002F\u002Fmedium.com\u002F@peterleyssens\u002Fusing-opencv-3-from-golang-5510c312a3c and the repo at https:\u002F\u002Fgithub.com\u002Fsensorbee\u002Fopencv thank you all!\n\n## License\n\nLicensed under the Apache 2.0 license. Copyright (c) 2017-2026 The Hybrid Group.\n\nLogo generated by GopherizeMe - https:\u002F\u002Fgopherize.me\n","# GoCV\n\n[![GoCV](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_1e88deddfa9f.jpg)](http:\u002F\u002Fgocv.io\u002F)\n\n[![Go Reference](https:\u002F\u002Fpkg.go.dev\u002Fbadge\u002Fgocv.io\u002Fx\u002Fgocv.svg)](https:\u002F\u002Fpkg.go.dev\u002Fgocv.io\u002Fx\u002Fgocv)\n[![Linux](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Flinux.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Flinux.yml)\n[![macOS](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fmacos.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fmacos.yml)\n[![Windows](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fwindows.yml\u002Fbadge.svg?branch=dev)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Factions\u002Fworkflows\u002Fwindows.yml)\n[![Go Report Card](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_2b4a70945b89.png)](https:\u002F\u002Fgoreportcard.com\u002Freport\u002Fgithub.com\u002Fhybridgroup\u002Fgocv)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg)](https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fblob\u002Frelease\u002FLICENSE.txt)\n\nGoCV 包为 [OpenCV 4](http:\u002F\u002Fopencv.org\u002F) 计算机视觉库提供了 Go 语言绑定。\n\nGoCV 支持在 Linux、Docker、macOS 和 Windows 上使用最新版本的 Go 和 OpenCV（v4.12.0）。我们的持续使命是帮助 Go 编程语言成为与 OpenCV 生态系统最新发展兼容的“一流”客户端。\n\nGoCV 支持使用 Nvidia GPU 进行硬件加速的 [CUDA](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCUDA)。有关如何将 GoCV 与 OpenCV\u002FCUDA 结合使用的更多信息，请参阅 [CUDA README](.\u002Fcuda\u002FREADME.md)。\n\nGoCV 还支持 [Intel OpenVINO](https:\u002F\u002Fsoftware.intel.com\u002Fen-us\u002Fopenvino-toolkit)。有关如何将 GoCV 与 Intel OpenVINO 工具包结合使用的更多信息，请参阅 [OpenVINO README](.\u002Fopenvino\u002FREADME.md)。\n\n## 使用方法\n\n### 你好，视频\n\n此示例使用设备“0”打开视频捕获设备，读取帧，并在 GUI 窗口中显示视频：\n\n```go\npackage main\n\nimport (\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc main() {\n\twebcam, _ := gocv.OpenVideoCapture(0)\n\twindow := gocv.NewWindow(\"Hello\")\n\timg := gocv.NewMat()\n\n\tfor {\n\t\twebcam.Read(&img)\n\t\twindow.IMShow(img)\n\t\twindow.WaitKey(1)\n\t}\n}\n```\n\n### 人脸检测\n\n![GoCV](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_readme_376f23a74ef6.jpg)\n\n这是一个更完整的示例，它使用设备“0”打开视频捕获设备。它还使用 CascadeClassifier 类加载包含分类器数据的外部数据文件。程序从视频中逐帧抓取图像，然后使用分类器检测人脸。如果发现有人脸，它会在每张脸上绘制一个绿色矩形，然后在输出窗口中显示视频：\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"image\u002Fcolor\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc main() {\n    \u002F\u002F 设置使用视频捕获设备 0\n    deviceID := 0\n\n\t\u002F\u002F 打开网络摄像头\n\twebcam, err := gocv.OpenVideoCapture(deviceID)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn\n\t}\n\tdefer webcam.Close()\n\n\t\u002F\u002F 打开显示窗口\n\twindow := gocv.NewWindow(\"Face Detect\")\n\tdefer window.Close()\n\n\t\u002F\u002F 准备图像矩阵\n\timg := gocv.NewMat()\n\tdefer img.Close()\n\n\t\u002F\u002F 检测到人脸时矩形的颜色\n\tblue := color.RGBA{0, 0, 255, 0}\n\n\t\u002F\u002F 加载用于识别人脸的分类器\n\tclassifier := gocv.NewCascadeClassifier()\n\tdefer classifier.Close()\n\n\tif !classifier.Load(\"data\u002Fhaarcascade_frontalface_default.xml\") {\n\t\tfmt.Println(\"Error reading cascade file: data\u002Fhaarcascade_frontalface_default.xml\")\n\t\treturn\n\t}\n\n\tfmt.Printf(\"start reading camera device: %v\\n\", deviceID)\n\tfor {\n\t\tif ok := webcam.Read(&img); !ok {\n\t\t\tfmt.Printf(\"cannot read device %v\\n\", deviceID)\n\t\t\treturn\n\t\t}\n\t\tif img.Empty() {\n\t\t\tcontinue\n\t\t}\n\n\t\t\u002F\u002F 检测人脸\n\t\trects := classifier.DetectMultiScale(img)\n\t\tfmt.Printf(\"found %d faces\\n\", len(rects))\n\n\t\t\u002F\u002F 在原始图像上为每张脸绘制一个矩形\n\t\tfor _, r := range rects {\n\t\t\tgocv.Rectangle(&img, r, blue, 3)\n\t\t}\n\n\t\t\u002F\u002F 在窗口中显示图像，并等待 1 毫秒\n\t\twindow.IMShow(img)\n\t\twindow.WaitKey(1)\n\t}\n}\n```\n\n### 更多示例\n\n本仓库的 [cmd 目录](.\u002Fcmd) 中包含各种实用命令行工具的示例，例如 [捕获图像文件](.\u002Fcmd\u002Fsaveimage)、[流式传输 mjpeg 视频](.\u002Fcmd\u002Fmjpeg-streamer)、[统计越过某条线的物体数量](.\u002Fcmd\u002Fcounter)，以及 [使用 OpenCV 和 DNN 进行人脸跟踪](.\u002Fcmd\u002FfacedetectYN)。\n\n## 安装方法\n\n要安装 GoCV，您必须先在系统上安装匹配版本的 OpenCV。当前版本的 GoCV 需要 OpenCV 4.12.0。\n\n我们还提供了适用于 Linux、macOS、Windows 及其他平台的安装说明。\n\n### Linux\n\n请访问我们的网站：https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Flinux\u002F\n\n### macOS\n\n请访问我们的网站：https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fmacos\u002F\n\n### Windows\n\n请访问我们的网站：https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fwindows\u002F\n\n### Docker\n\n请访问我们的网站：https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fdocker\u002F\n\n### Android\n\n目前正在进行使用 Gomobile 在 Android 上运行 GoCV 的工作。有关如何在 Android 上安装 OpenCV\u002FGoCV 的信息，请参阅：\nhttps:\u002F\u002Fgist.github.com\u002Fogero\u002Fc19458cf64bd3e91faae85c3ac8874120\n\n原始讨论请见：\nhttps:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F235\n\n## 性能分析\n\n由于 GoCV 中图像的内存分配是通过 C 代码完成的，因此 Go 垃圾回收器不会清理与 `Mat` 相关的所有资源。因此，任何创建的 `Mat` 都必须关闭，以避免内存泄漏。\n\n为了便于检测和修复资源泄漏，GoCV 提供了一个 `Mat` 分析器，用于记录每个 `Mat` 的创建和关闭时间。每次分配 `Mat` 时，堆栈跟踪都会被添加到分析记录中；当 `Mat` 被关闭时，相应的堆栈跟踪会被移除。有关详细信息，请参阅 [runtime\u002Fpprof 文档](https:\u002F\u002Fgolang.org\u002Fpkg\u002Fruntime\u002Fpprof\u002F#Profile)。\n\n要启用 MatProfile 自定义分析器，您必须使用 `-tags matprofile` 构建标记来构建或运行您的应用程序或测试。例如：\n\n    go run -tags matprofile cmd\u002Fversion\u002Fmain.go\n\n您可以随时使用以下代码获取分析记录中的计数：\n\n```go\ngocv.MatProfile.Count()\n```\n\n您还可以使用以下代码显示当前的条目（即堆栈跟踪）：\n\n```go\nvar b bytes.Buffer\ngocv.MatProfile.WriteTo(&b, 1)\nfmt.Print(b.String())\n```\n\n这对于追踪内存泄漏非常有帮助。例如，假设您有以下无意义的程序：\n\n```go\npackage main\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc leak() {\n\tgocv.NewMat()\n}\n\nfunc main() {\n\tfmt.Printf(\"initial MatProfile count: %v\\n\", gocv.MatProfile.Count())\n\tleak()\n\n\tfmt.Printf(\"final MatProfile count: %v\\n\", gocv.MatProfile.Count())\n\tvar b bytes.Buffer\n\tgocv.MatProfile.WriteTo(&b, 1)\n\tfmt.Print(b.String())\n}\n```\n\n运行该程序会产生如下输出：\n\n```\ninitial MatProfile count: 0\nfinal MatProfile count: 1\ngocv.io\u002Fx\u002Fgocv.Mat profile: total 1\n1 @ 0x40b936c 0x40b93b7 0x40b94e2 0x40b95af 0x402cd87 0x40558e1\n#\t0x40b936b\tgocv.io\u002Fx\u002Fgocv.newMat+0x4b\t\u002Fgo\u002Fsrc\u002Fgocv.io\u002Fx\u002Fgocv\u002Fcore.go:153\n\n#\t0x40b93b6\tgocv.io\u002Fx\u002Fgocv.NewMat+0x26\t\u002Fgo\u002Fsrc\u002Fgocv.io\u002Fx\u002Fgocv\u002Fcore.go:159\n#\t0x40b94e1\tmain.leak+0x21\t\t\t\u002Fgo\u002Fsrc\u002Fgithub.com\u002Fdougnd\u002Fgocvprofexample\u002Fmain.go:11\n#\t0x40b95ae\tmain.main+0xae\t\t\t\u002Fgo\u002Fsrc\u002Fgithub.com\u002Fdougnd\u002Fgocvprofexample\u002Fmain.go:16\n#\t0x402cd86\truntime.main+0x206\t\t\u002Fusr\u002Flocal\u002FCellar\u002Fgo\u002F1.11.1\u002Flibexec\u002Fsrc\u002Fruntime\u002Fproc.go:201\n```\n\n我们可以看到，这个程序会泄漏内存。当它退出时，仍然有一个未关闭的 `Mat` 对象。堆栈跟踪精确地指出了分配发生的具体行（第11行，即 `gocv.NewMat()`）。\n\n此外，如果该程序是一个长期运行的进程，或者 GoCV 被用于 Web 服务器中，那么安装 HTTP 接口可能会很有帮助。例如：\n\n```go\npackage main\n\nimport (\n\t\"net\u002Fhttp\"\n\t_ \"net\u002Fhttp\u002Fpprof\"\n\t\"time\"\n\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc leak() {\n\tgocv.NewMat()\n}\n\nfunc main() {\n\tgo func() {\n\t\tticker := time.NewTicker(time.Second)\n\t\tfor {\n\t\t\t\u003C-ticker.C\n\t\t\tleak()\n\t\t}\n\t}()\n\n\thttp.ListenAndServe(\"localhost:6060\", nil)\n}\n\n```\n\n这段代码每秒会泄漏一个 `Mat` 对象。你可以通过访问已安装的 HTTP 调试接口来查看当前的性能剖析计数和堆栈跟踪：[http:\u002F\u002Flocalhost:6060\u002Fdebug\u002Fpprof\u002Fgocv.io\u002Fx\u002Fgocv.Mat](http:\u002F\u002Flocalhost:6060\u002Fdebug\u002Fpprof\u002Fgocv.io\u002Fx\u002Fgocv.Mat?debug=1)。\n\n## 如何贡献\n\n请查看我们的 [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) 文档，以了解我们的贡献指南。\n\n然后，请查阅我们的 [ROADMAP.md](.\u002FROADMAP.md) 文档，以了解接下来可以开展的工作。\n\n## 为什么会有这个项目\n\n针对 Go 和 OpenCV 的 [https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv](https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv) 包并不支持 OpenCV 2.x 以上的版本，而对 OpenCV 3 的支持工作也已经停滞了一年多，这主要是由于 [SWIG](http:\u002F\u002Fswig.org\u002F) 的复杂性所致。因此，我们启动了这个项目。\n\nGoCV 包使用一种 C 风格的封装层来围绕 OpenCV 4 的 C++ 类进行封装，从而避免直接对庞大的现有代码库应用 SWIG。这些映射尽可能地与原始 OpenCV 的项目结构保持一致，以便于查找相关内容，并能够确定在 GoCV 中为额外的 OpenCV 图像滤波器、算法和其他功能添加支持的位置。\n\n例如，OpenCV 的 `videoio` 模块（位于 [https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv\u002Ftree\u002Fmaster\u002Fmodules\u002Fvideoio](https:\u002F\u002Fgithub.com\u002Fopencv\u002Fopencv\u002Ftree\u002Fmaster\u002Fmodules\u002Fvideoio)）的封装可以在 GoCV 包的 `videoio.*` 文件中找到。\n\n本项目受到最初的 https:\u002F\u002Fgithub.com\u002Fgo-opencv\u002Fgo-opencv 项目、博客文章 https:\u002F\u002Fmedium.com\u002F@peterleyssens\u002Fusing-opencv-3-from-golang-5510c312a3c 以及仓库 https:\u002F\u002Fgithub.com\u002Fsensorbee\u002Fopencv 的启发——在此向所有贡献者表示感谢！\n\n## 许可证\n\n本项目采用 Apache 2.0 许可证授权。版权所有 © 2017–2026 The Hybrid Group。\n\nLogo 由 GopherizeMe 生成 - https:\u002F\u002Fgopherize.me","# GoCV 快速上手指南\n\nGoCV 是为 Go 语言提供的 OpenCV 4 计算机视觉库绑定，支持 Linux、macOS、Windows 及 Docker 环境，并可选支持 CUDA 加速和 Intel OpenVINO。\n\n## 环境准备\n\n### 系统要求\n- **Go 版本**：最新稳定版\n- **OpenCV 版本**：必须安装 **OpenCV 4.12.0**\n- **操作系统**：Linux、macOS、Windows 或 Docker\n\n### 前置依赖\n在使用 GoCV 之前，必须先在其操作系统上编译并安装匹配版本的 OpenCV。由于国内网络环境，建议参考以下方案：\n- **Linux\u002FmacOS\u002FWindows**：请访问官方安装指南页面获取详细步骤（需自行解决 OpenCV 源码下载加速问题）：\n  - Linux: https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Flinux\u002F\n  - macOS: https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fmacos\u002F\n  - Windows: https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fwindows\u002F\n- **Docker**：推荐使用官方提供的 Docker 镜像，可避免本地编译 OpenCV 的繁琐过程：https:\u002F\u002Fgocv.io\u002Fgetting-started\u002Fdocker\u002F\n\n> **注意**：GoCV 本身不包含 OpenCV 二进制文件，必须确保系统中已正确安装 `pkg-config` 能找到的 OpenCV 库。\n\n## 安装步骤\n\n确保 OpenCV 4.12.0 安装完成后，使用 `go get` 命令安装 GoCV 包：\n\n```bash\ngo get -u gocv.io\u002Fx\u002Fgocv\n```\n\n验证安装是否成功，可以运行版本检测工具：\n\n```bash\ngo run -mod=mod gocv.io\u002Fx\u002Fgocv\u002Fcmd\u002Fversion\u002Fmain.go\n```\n\n如果输出显示了 Go 版本、OpenCV 版本以及目标操作系统信息，则说明安装成功。\n\n## 基本使用\n\n### 示例：读取摄像头画面 (Hello, Video)\n\n以下是最简单的示例，打开默认摄像头（设备 0），读取视频帧并在窗口中显示。\n\n```go\npackage main\n\nimport (\n\t\"gocv.io\u002Fx\u002Fgocv\"\n)\n\nfunc main() {\n\twebcam, _ := gocv.OpenVideoCapture(0)\n\twindow := gocv.NewWindow(\"Hello\")\n\timg := gocv.NewMat()\n\n\tfor {\n\t\twebcam.Read(&img)\n\t\twindow.IMShow(img)\n\t\twindow.WaitKey(1)\n\t}\n}\n```\n\n**运行说明：**\n1. 将代码保存为 `main.go`。\n2. 确保摄像头已连接。\n3. 运行程序：`go run main.go`。\n4. 按任意键关闭窗口退出。\n\n### 重要提示：内存管理\nGoCV 中的 `Mat` 对象底层由 C 代码分配内存，Go 的垃圾回收器无法自动释放。因此，**所有创建的 `Mat` 对象必须手动调用 `.Close()` 方法**，否则会导致内存泄漏。在生产环境中，请配合 `defer` 使用：\n\n```go\nimg := gocv.NewMat()\ndefer img.Close()\n```","某智慧工厂团队需要为生产线部署一套实时缺陷检测系统，利用摄像头监控产品表面并自动标记瑕疵。\n\n### 没有 gocv 时\n- 开发团队被迫使用 Python 调用 OpenCV，导致与现有的 Go 语言后端微服务架构割裂，增加了跨语言调用的运维复杂度。\n- 图像数据在 Go 业务逻辑与 Python 检测脚本间频繁序列化传输，造成显著延迟，无法满足毫秒级实时拦截需求。\n- 难以直接利用工厂服务器已有的 NVIDIA GPU 资源进行硬件加速，CPU 处理高分辨率视频流时负载过高，容易丢帧。\n- 部署环境需同时维护 Python 虚拟环境与 Go 运行时，依赖冲突频发，容器镜像体积庞大且启动缓慢。\n\n### 使用 gocv 后\n- 团队直接用 Go 编写全部视觉逻辑，无缝集成进现有微服务，消除了跨语言边界，代码维护效率大幅提升。\n- 内存中的图像矩阵直接在 Go 进程内处理，零拷贝开销将端到端延迟降低至毫秒级，确保次品即时剔除。\n- 通过 gocv 原生支持的 CUDA 接口，轻松启用 GPU 加速推理，单台服务器即可稳定处理多路高清视频流。\n- 仅需一个轻量级 Go 二进制文件即可完成部署，彻底解决依赖地狱问题，显著缩小容器体积并加快上线速度。\n\ngocv 让 Go 开发者能以原生性能驾驭工业级计算机视觉能力，实现了从算法原型到生产部署的无缝闭环。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fhybridgroup_gocv_7bc9ad90.png","hybridgroup","The Hybrid Group","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fhybridgroup_3bd6b6f1.png","Software that makes your hardware work.",null,"https:\u002F\u002Fhybridgroup.com","https:\u002F\u002Fgithub.com\u002Fhybridgroup",[80,84,88,92,96,100,103,107],{"name":81,"color":82,"percentage":83},"Go","#00ADD8",70.8,{"name":85,"color":86,"percentage":87},"C++","#f34b7d",22.6,{"name":89,"color":90,"percentage":91},"C","#555555",4.9,{"name":93,"color":94,"percentage":95},"Makefile","#427819",1.2,{"name":97,"color":98,"percentage":99},"Roff","#ecdebe",0.2,{"name":101,"color":102,"percentage":99},"Batchfile","#C1F12E",{"name":104,"color":105,"percentage":106},"Shell","#89e051",0,{"name":108,"color":109,"percentage":106},"Dockerfile","#384d54",7416,906,"2026-04-06T07:47:51","NOASSERTION",4,"Linux, macOS, Windows","非必需。若需硬件加速，支持 NVIDIA GPU (CUDA)，具体型号、显存及 CUDA 版本未说明。","未说明",{"notes":119,"python":120,"dependencies":121},"1. 该工具是 Go 语言绑定，非 Python 库。2. 必须先在系统层面安装匹配版本的 OpenCV (v4.12.0)。3. 由于底层使用 C 代码分配内存，创建的每个 'Mat' 对象必须手动调用 Close() 方法，否则会导致内存泄漏。4. 可选支持 Intel OpenVINO 工具包。5. Android 平台支持尚在进行中。","不适用 (基于 Go 语言)",[122,123],"Go (最新稳定版)","OpenCV 4.12.0",[60,15,14],[126,127,128,129,130,131,132,133,134,135,136,137,138,64,139,140,141,142,143],"opencv","golang","video","computer-vision","video-capture","face-tracking","mjpeg","mjpeg-stream","image-processing","tensorflow","computervision","openvino","dnn","object-tracking","object-classification","cuda","onnx","yolo","2026-03-27T02:49:30.150509","2026-04-06T22:01:56.223868",[147,152,157,162,167,172],{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},20193,"在 Ubuntu 上编译时遇到 \"eigenNonSymmetric is not a member of 'cv'\" 错误怎么办？","该错误通常是因为安装步骤不完整。请尝试运行 `sudo make install` 而不是仅运行 `make build`。执行完安装命令后，问题通常即可解决。此外，确保在安装后运行了环境配置脚本（如 `env.sh`）。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F221",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},20194,"在 macOS 上使用 Homebrew 安装 OpenCV 后编译报错，提示版本不匹配或函数样式转换错误如何解决？","Homebrew 安装的 OpenCV 版本号可能带有后缀（如 3.4.0_1），但这与 GoCV 兼容，无需修改代码。关键步骤是：1. 运行 `brew update opencv` 确保安装最新；2. **每次**开启新的终端会话时，必须运行 `source .\u002Fenv.sh` 以设置环境变量；3. 确保没有手动安装其他版本的 OpenCV 造成冲突。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F30",{"id":158,"question_zh":159,"answer_zh":160,"source_url":161},20195,"在 Windows (VS Code) 下构建时提示找不到 \"opencv2\u002Fopencv.hpp\" 文件怎么办？","这通常意味着 OpenCV 未正确构建或环境变量未指向构建目录。需要通过命令行使用 CMake 重新构建 OpenCV。参考命令如下：\ncmake C:\\opencv\\opencv-3.4.1 -G \"MinGW Makefiles\" -BC:\\opencv\\build -DENABLE_CXX11=ON -DOPENCV_EXTRA_MODULES_PATH=C:\\opencv\\opencv_contrib-3.4.1\\modules -DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_java=OFF -DBUILD_opencv_python=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DBUILD_DOCS=OFF -DENABLE_PRECOMPILED_HEADERS=OFF -DBUILD_opencv_saliency=OFF -DCPU_DISPATCH= -Wno-dev\n构建完成后，确保 Go 项目能正确链接到生成的库文件。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F209",{"id":163,"question_zh":164,"answer_zh":165,"source_url":166},20196,"GoCV 中类似 Flip 的函数，目标 Mat 参数是否需要传递指针？","是的，为了符合 Go 语言的习惯并明确指示参数会被修改，所有用于接收输出结果的 `Mat` 参数都应传递指针。例如，应使用 `gocv.Flip(src, &dst, 0)` 而不是 `gocv.Flip(src, dst, 0)`。这一规范已在 v0.11.0 版本中正式实施。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F137",{"id":168,"question_zh":169,"answer_zh":170,"source_url":171},20197,"在 Windows 上使用 OpenVINO 时找不到 setupvars.sh 脚本怎么办？","`setupvars.sh` 是 Linux\u002FmacOS 专用的环境脚本，Windows 用户不应使用该文件。Windows 用户需要寻找对应的 `.bat` 或 `.cmd` 脚本（通常位于 Intel OpenVINO 安装目录的 bin 文件夹下，如 `setupvars.bat`）来设置环境变量。如果不确定具体路径，建议查阅 Intel 官方文档或在 Intel 开发者论坛提问。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F255",{"id":173,"question_zh":174,"answer_zh":175,"source_url":176},20198,"调用 Mat.ToImage() 后出现内存泄漏，即使调用了 Close() 也无法释放，如何解决？","这是一个已知的性能问题。`ToImage()` 方法会将数据转换为 Go 的 `image.RGBA` 对象，这部分内存由 Go 的垃圾回收器（GC）管理，而不是由 `img.Close()` 直接释放 C 端内存那样即时。`img.Close()` 仅释放底层的 C++ Mat 对象。如果发现内存占用高，是因为生成的 Go 图像对象尚未被 GC 回收。虽然可以手动调用 `runtime.GC()` 触发回收，但通常建议让 Go 运行时自动管理，或者优化代码逻辑减少频繁创建大图像对象。","https:\u002F\u002Fgithub.com\u002Fhybridgroup\u002Fgocv\u002Fissues\u002F766",[178,183,188,193,198,203,208,213,218,223,228,233,238,243,247,252,257,262,267,272],{"id":179,"version":180,"summary_zh":181,"released_at":182},118235,"v0.43.0","* **all**\n    - 更新至 OpenCV 4.13\n* **core**\n    - 向 Mat 添加 Copy 方法 (#1346)\n    - 改进 NewPointVectorFromPoints 的实现\n* **cuda**\n    - 为更多算术函数添加实现\n* **imgproc**\n    - 补齐缺失的颜色映射表\n    - 修正 imgproc 中 dilate 和 erode 函数的参数类型\n    - 使 TestMinAreaRect 和 TestMinAreaRect2f 使用与 OpenCV 测试相同的测试值\n* **videoio**\n    - 添加 RetrieveChannel 函数，以支持同时捕获视频和音频\n* **examples**\n    - 修复 yolov8 示例中的错误和内存泄漏 (#1349)\n* **contrib**\n    - 增加对 Macbeth Chart 模块 (MCC) 的支持 (#1336)\n* **install**\n    - Windows：拆分下载和构建脚本，以便更轻松地使用和集成\n","2026-01-05T21:10:06",{"id":184,"version":185,"summary_zh":186,"released_at":187},118236,"v0.42.0","* **all**\n    - 升级到 OpenCV 4.12.0\n    - 暴露 GpuMat 的底层对象指针\n    - 添加对使用特定模块构建标签（cuda、contrib 等）的精简版 OpenCV 构建的支持\n- **cuda**\n    - 添加左移和右移函数的实现\n    - 添加比较函数的实现\n    - 添加 Norm、CalcNorm 和 CalcNormDiff 函数的实现\n    - 添加 CUDA 形态学滤波器 (#1311)\n- **core**\n    - 添加 ReshapeWithSize()，以对重塑操作进行更精细的控制\n    - 添加带有可选掩码的 cv::meanStdDev 实现 MeanStdDevWithMask\n- **video**\n    - 添加基于 Vit DNN 的视频跟踪器实现\n    - 添加 cv::stereoRectify 绑定\n- **docker**\n    - 将 OpenCV 容器更新至 4.12.0 版本\n- **docs**\n    - 更新 ROADMAP 链接，并补充缺失的跟踪器函数\n    - 更新 README，加入新功能及使用说明\n- **build**\n    - 使用构建标签生成包含特定模块的精简版 OpenCV\n- **bugfix**\n    - 修复 contrib 包名不匹配的 bug (#1293)","2025-07-29T10:01:09",{"id":189,"version":190,"summary_zh":191,"released_at":192},118237,"v0.41.0","* **all**\n    - opencv: 为 GStreamer 的 CMake 添加补丁，以支持静态链接\n- **bugfix**\n    - 修正包装器中的 `#ifndef` 宏，避免头文件冲突\n    - 临时修复 https:\u002F\u002Fgithub.com\u002Fdocker\u002Fsetup-qemu-action\u002Fissues\u002F198\n- **core**\n    - 添加异常处理函数和 `try\u002Fcatch` 块\n    - 对调用 OpenCV 函数时抛出的异常返回错误信息，错误信息中包含捕获到的 OpenCV 异常描述\n- **features2d**\n    - 添加支持参数的 BRISK 算法 (#1280)\n    - 为 features2d 模块添加参数支持 (#1283)\n- **photo**\n    - 添加 Decolor() 函数\n- **video**\n    - 为 MOG2 背景减除器添加 ApplyWithParams 方法 (#1284)\n- **build**\n    - 添加手动触发的工作流，用于构建 FFmpeg、GStreamer 和 OpenCV 的 Docker 镜像\n    - 添加 `Dockerfile.opencv-ubuntu-24.04`，以支持 Ubuntu 24.04\n    - 在构建镜像的工作流中添加 `opencv-ubuntu-24-04` 步骤\n- **docker**\n    - 添加不含 GStreamer 的 OpenCV 和 FFmpeg 静态镜像\n    - 构建包含特定插件集的 GStreamer 镜像\n    - 使用 OpenCV 补丁构建完全静态、且包含插件的 GStreamer\n- **docs**\n    - 更新 ROADMAP，移除已实现的功能条目\n    - 修复 README 中关于从 URL 进行人脸检测和棋盘格角点检测的错误链接\n- **make**\n    - 添加适用于 Ubuntu Manic Minotaur 的安装任务，基于 @chewxy 提交的 PR #1157\n    - 根据最新可用信息更新 Jetson 平台的 Make 任务\n    - 更新 Makefile (#1276)","2025-03-20T15:46:41",{"id":194,"version":195,"summary_zh":196,"released_at":197},118238,"v0.40.0","* **all**\n    - 添加对 OpenCV 4.11.0 的支持\n    - 将许可证年份更新为 2025 年\n- **bugfix**\n    - 修正 FindHomography 函数的签名，因为 dst 实际上是该操作的目标格式，而非由该操作所改变的内容\n- **core**\n    - 新增 Mat 构造函数及测试用例\n    - 新增 NewMatFromPoint2fVector 函数\n- **videoio**\n    - 将 VideoCaptureProperties 的类型改为 int32\n    - 添加 VideoWriterFile 及其 API 和参数说明\n- **docker**\n    - 改进 Alpine 静态编译 (#1243)\n- **make**\n    - 优化 Linux 发行版检测代码，并为 Ubuntu 24.04 添加特定依赖项\n- **examples**\n    - GStreamer VideoWriter 示例\n- **build**\n    - 在运行 macOS 测试时更新 Homebrew\n    - 将 Linux 构建中的 GitHub Actions 更新至最新版本","2025-01-13T15:23:05",{"id":199,"version":200,"summary_zh":201,"released_at":202},118239,"v0.39.0","- **bugfix**\n  - 修复了 README.md 中 MinGW 链接的拼写错误。\n  - 修复了函数名拼写错误 (#1236)。\n- **core**\n  - 添加了 `FaceDetectorYN` 示例。\n  - 查询 I\u002FO API 后端注册表 (#1237)。\n  - 人脸检测器 YN 和人脸识别器 SF (#1232)。\n- **cuda**\n  - 添加了 `createLookUpTable` 和 `split` 函数。\n  - 补齐了缺失的 CUDA `imgproc` 独立函数。\n  - 添加了 `XXXWithStream` 独立函数。\n- **docker**\n  - 添加了用于构建 GoCV 项目静态版本的 Dockerfile（静态构建不支持 HighGUI）。\n  - 添加了展示如何使用静态链接进行构建的 Dockerfile 示例。\n  - 增加了静态构建示例。\n  - 更新了 `gocv-static-builder` 镜像的版本。\n- **build**\n  - 将 Docker 构建的工作流更新至最新版本。\n  - 使用了最新的 NVIDIA CUDA 基础镜像。\n  - 在静态 OpenCV 构建中使用了静态 FFmpeg 版本。\n  - 为避免 [Go 问题 #68976](https:\u002F\u002Fgithub.com\u002Fgolang\u002Fgo\u002Fissues\u002F68976)，将静态构建的 Go 版本降级至 1.22。\n  - 修改了用于静态构建的 Dockerfile，以构建适用于静态链接的自定义版本。\n  - 修正了 arm64 平台上 OpenCV 静态构建的编译选项。\n  - 将 arm64 和 amd64 目标的构建标签和链接器标志分开。\n  - 修改了 LDFLAGS 以确保正确的静态编译。\n  - 删除了多余文件，以释放静态构建和标准开发构建镜像的空间。\n  - 增加了针对 Linux arm64 和独立 Darwin 构建的选项。\n- **cgo**\n  - 将静态 OpenCV 的标签更改为 `opencvstatic`。\n  - 增加了针对 Linux arm64 和独立 Darwin 构建的选项。\n  - 移除了 Linux\u002Farm64 链接中不必要的库。\n  - 修改了 LDFLAGS 以实现正确的静态编译。\n- **docs**\n  - 将缺失的 `videoio` 函数添加到 ROADMAP 中。\n  - 更新 ROADMAP，补充了 DNN 人脸检测模块中缺失的 `objdetect` 函数，并将 `aruco` 模块归入 `objdetect` 模块下。\n  - 简化了 YOLO 示例。","2024-10-17T10:22:15",{"id":204,"version":205,"summary_zh":206,"released_at":207},118240,"v0.38.0","* **bug修复**\n    * aruco：修正因最新OpenCV更新导致的测试问题\n    * 在Windows构建中排除freetype.cpp文件\n    * feat(demosaicing)：将图像转换为拜耳格式时，若遇到无效模式则释放Mat对象\n    * 修复imgproc模块中HomographyMethod常量值的拼写错误\n* **构建**\n    * 为GitHub Actions CI添加macOS构建\n    * 调整Makefile和Docker构建文件以支持Freetype库\n    * 修正Linux\u002FmacOS上的ONNX DNN测试\n    * 将GOTURN模型的下载移至testdata子目录\n    * 移除Caffe相关测试\n    * 在Windows上运行DNN测试\n    * Makefile：新增运行所有CUDA测试的任务\n    * Makefile：在构建带有CUDA支持的OpenCV时，同时编译非自由模块\n    * 跳过macOS上因OpenCV结果差异而不通过的测试。详情参见https:\u002F\u002Fforum.opencv.org\u002Ft\u002Fmatch-template-different-results-on-mac-m1\u002F10026及其他类似问题。\n    * 将所有生成的Docker镜像更新至Go 1.23.1版本\n* **示例**\n    * 添加asciicam视频示例，可在终端中显示ASCII艺术效果\n    * 添加使用YOLOv8进行目标检测的示例\n* **核心库**\n    * 为Mat类添加Closed()函数\n    * 增加用于半精度浮点值的OpenCV类型\n    * 增加TransposeND()函数\n    * 持久化模块实现Filestorage路线图（#1208）\n    * RotatedRect类型的构造函数\n* **深度神经网络**\n    * 增加BlobFromImageWithParams()和BlobFromImagesWithParams()函数\n    * 增加BlobRectToImageRect()和BlobRectsToImageRects()函数\n    * 允许ReadNet()函数仅传入模型文件，并移除Caffe相关测试\n* **features2d**\n    * 支持带参数的SIFT算法（#1186）\n* **highgui**\n    * 添加窗口pollkey函数（#1198）\n    * 添加窗口WaitKeyEx支持（#1195）\n    * 为窗口设置鼠标回调函数（#1220）\n* **imgcodecs**\n    * 增加immultiread支持\n* **imgproc**\n    * feat(imgproc)：去马赛克封装器\n    * 增加HomographyMethodRHO常量\n* **目标检测**\n    * 修改QRCodeDetector签名，避免传递切片指针\n* **video**\n    * 添加TrackerGOTURN跟踪器（参见路线图）\n* **videoio**\n    * 支持硬件加速的设备和文件捕获\n* **CUDA**\n    * 为Mat\u002FGpuMat类添加Closed()函数\n    * 增加DeviceSupports函数\n    * 实现AddWeighted和CopyMakeBorder函数\n    * 增加Merge和Transpose函数\n    * 增加对convertFp16函数的支持\n    * 增加去马赛克功能的测试\n    * feat(imgproc)：去马赛克封装器\n    * 修复go fmt格式错误\n* **contrib\u002Fface**\n    * 增加人脸识别器接口（#1211）\n    * BasicFaceRecognizer + EigenFaceRecognizer + FisherFaceRecognizer（#1213）\n    * 为LBPHFaceRecognizer增加额外的setter和getter方法（#1194）\n* **contrib\u002Ffreetype**\n    * 导入lz1998在PR 873中提交的Freetype代码","2024-09-16T19:47:07",{"id":209,"version":210,"summary_zh":211,"released_at":212},118241,"v0.37.0","* **全部**\n    * 添加对 OpenCV 4.10.0 的支持\n","2024-06-06T07:56:12",{"id":214,"version":215,"summary_zh":216,"released_at":217},118242,"v0.36.1","* **bugfix**\n    * 修复 CUDA 函数签名中的错误\n* **test**\n    * 修正 CUDA 测试\n* **docker**\n    * 添加用于 CUDA 12 的测试镜像","2024-04-05T06:17:45",{"id":219,"version":220,"summary_zh":221,"released_at":222},118243,"v0.36.0","* **all**\n    * 添加对 OpenCV 4.9.0 的支持\n    * 将 Go 更新至 1.22 版本\n    * 将最低 Go 版本更新为 1.21\n* **bugfix**\n    * aruco：修正来自最新 OpenCV 更新的测试\n* **build**\n    * 添加用于 Windows 的 GitHub Actions 工作流\n    * 移除 AppVeyor\n    * 调整 Makefile 以针对 Debian Bookworm 进行构建\n* **core**\n    * 为 MinMaxLoc 添加额外签名\n    * 添加颜色转换别名\n    * 添加 Mahalanobis()、Inv()、Row() 和 Col() 函数\n    * 添加 MulTransposed() 函数\n    * 添加 PCABackProject() 和 PCAProject() 函数\n    * 添加 PSNR() 函数\n    * 添加 SVBackSubst() 和 SVDecomp() 函数\n* **calib3d**\n    * 添加 FisheyeCalibrate、FisheyeDistortPoints 和 CheckChessboard 函数\n    * 添加函数注释并更新 README\n    * 添加 Rodrigues 函数\n    * 添加 SolvePnP 函数\n    * 增加更多烟雾测试\n    * 初次提交更多立体视觉绑定\n* **feature2d**\n    * 为 `Feature2D` 算法添加接口\n    * 确认部分算法符合 `Feature2D` 接口规范\n    * 在 Feature2D 组件接口前添加“Feature2D”前缀\n* **imgproc**\n    * 添加 CreateHanningWindow()\n    * 添加 EMD()\n    * 为 BoxPoints 和 MinAreaRect 添加浮点版本\n    * 为 cv::Erode 添加新的绑定\n* **videoio**\n    * 添加 Retrieve 函数\n* **contrib\u002Fxfeatures2d**\n    * 向 xfeatures2d 添加 BriefDescriptorExtractor (#1114)\n    * 添加 NewSURFWithParams 函数\n    * 为检测算法添加独立的“Compute”绑定 (#1117)\n* **cuda\u002Fcore**\n    * 添加 Cuda MultiplyWithStream (#1142)","2024-04-01T08:44:02",{"id":224,"version":225,"summary_zh":226,"released_at":227},118244,"v0.35.0","* **all**\n    * 添加对 OpenCV 4.8.1 的支持\n    * 修正 Go 代码格式\n* **features2d**\n    * 为 BFMatcher 添加 Match 方法\n* **build**\n    * 从 GitHub Actions 运行器中移除多余文件，以确保 GPU 镜像构建有足够的临时文件空间，从而正确运行\n* **make**\n    * 为 build_raspi 增加了针对 64 位和 32 位平台的条件性 CMake 构建\n    * 从 64 位构建中移除 ENABLE_VFPV3=ON，并添加 WITH_TBB=ON。\n    * 在树莓派和 Jetson 的安装脚本中添加了 sudo_pre_install_clean。\n    * 修改 sudo_pre_install_clean，使其支持在 64 位架构（ARM 和 x86）上进行清理。","2023-10-12T07:02:57",{"id":229,"version":230,"summary_zh":231,"released_at":232},118245,"v0.34.0","* **all**\r\n    * Add support for OpenCV 4.8.0\r\n    * Add support for Go 1.21\r\n* **build**\r\n    * update all builds to use OpenCV 4.8.0\r\n* **core**\r\n    * Adds support for PCACompute\r\n* **docker**\r\n    * add dockerfile for OpenCV static build\r\n* **make**\r\n    * Leave one processor free instead of using all of them when building\r\n","2023-08-21T17:01:12",{"id":234,"version":235,"summary_zh":236,"released_at":237},118246,"v0.33.0","* **bugfix**\r\n    * Remove opencv2\u002Faruco.hpp include\r\n* **all**\r\n    * build performance tests with all OpenCV builds\r\n* **build**\r\n    * build and push Ubuntu 22.04 base image with OpenCV 4.7.0\r\n    * docker images with opencv\r\n    * docker production images with opencv 4.7.0\r\n    * Docker push to GHCR\r\n* **core**\r\n    * Add ReduceArgMax and ReduceArgMin\r\n* **dnn**\r\n    * improved NMSBoxes code\r\n* **docker**\r\n    * add dockerfile for Ubuntu 22.04 OpenCV base image\r\n    * updates to migrate to GHCR\r\n* **examples**\r\n    * Deallocate Mats in feature-matching example.\r\n    * Fix G108 (CWE-200) and G114 (CWE-676)\r\n    * Fix G304 (CWE-22) and G307 (CWE-703)\r\n    * Fix G304 (CWE-22) and G307 (CWE-703)\r\n    * Missed #nosec tag\r\n* **make**\r\n    * Ubuntu Jammy (22) opencv build support.","2023-06-09T17:56:33",{"id":239,"version":240,"summary_zh":241,"released_at":242},118247,"v0.32.1","* **all**\r\n    * update to OpenCV 4.7.0\r\n* **core**\r\n    * Add the number of thread setter and getter\r\n* **calib3d**\r\n    * add EstimateAffinePartial2DWithParams()\r\n* **imgcodecs**\r\n    * Add IMDecodeIntoMat to reduce heap allocations (#1035)\r\n* **imgproc**\r\n    * add matchShapes function support\r\n* **objdetect**\r\n    * move aruco from contrib and also refactor\u002Fupdate to match current OpenCV API\r\n* **photo**\r\n    * add inpaint function\r\n* **video**\r\n    * cv::KalmanFilter bindings.\r\n* **cuda**\r\n    * add support for cuda::TemplateMatching\r\n* **docker**\r\n    * update all dockerfiles for OpenCV 4.7.0\u002FGoCV 0.32.0\r\n    * multiplatform for both amd64 and arm64\r\n    * install libjpeg-turbo into docker image\r\n    * add Ubunutu 18.04 and 20.04 prebuilt OpenCV images\r\n    * add dockerfile for older version of CUDA for those who cannot upgrade\r\n* **ci**\r\n    * remove circleci\r\n    * correct actions that trigger build\r\n* **make**\r\n    * change download path for OpenCV release tag\r\n* **windows**\r\n    * Update win_build_opencv.cmd\r\n* **docs**\r\n    * correct docs on building docker\r\n    * update ROADMAP\r\n    * typo in comment\r\n    * update comments style with gofmt\r\n* **openvino**\r\n    * Add openvino Dockerfile\r\n    * Fix OpenvinoVersion dangling pointer\r\n    * Update env.sh and README.md for 2022.1\r\n","2023-01-04T13:41:46",{"id":244,"version":245,"summary_zh":241,"released_at":246},118248,"v0.32.0","2023-01-04T13:38:19",{"id":248,"version":249,"summary_zh":250,"released_at":251},118249,"v0.31.0","* **all**\r\n    * update to OpenCV 4.6.0\r\n* **build**\r\n    * Switch to Github Actions for Linux CI build\r\n    * Use go -tags static when verifying static build\r\n* **core**\r\n    * Add Mat.ElemSize (#964)\r\n    * avoid index out of range panic in NewPointsVectorFromPoints\r\n* **video**\r\n    * add findTransformECC function\r\n* **contrib\u002Fximgproc**\r\n    * add PeiLinNormalization() function\r\n    * add anisotropicDiffusion() function\r\n    * implement edgePreservingFilter()\r\n    * implement niBlackThreshold and thinning filters","2022-06-07T06:55:48",{"id":253,"version":254,"summary_zh":255,"released_at":256},118250,"v0.30.0","* **all**\r\n    * update to OpenCV 4.5.5\r\n* **build**\r\n    * add install_nonfree make task to build all opencv_contrib modules\r\n    * correct download location for onnx test file\r\n    * Update Makefile for missing version changes\r\n* **core**\r\n    * correct how memory is being allocated for Eye(), Zeros(), and Ones() to address issue #930\r\n* **calib3d** \r\n    * Adding support for estimateAffine2DWithParams (#924)\r\n* **imgproc**\r\n    * Add DrawContoursWithParams function\r\n* **photo**\r\n    * Add bindings for fastNlMeansDenoising and fastNlMeansDenoisingColored\r\n    * add detailEnhance function\r\n    * add EdgePreservingFilter function\r\n    * add PencilSketch function\r\n    * add stylization function\r\n* **docs**\r\n    * add godoc comments for FastNlMeansDenoising functions\r\n    * update README with info on latest mingw-w64 t use for Windows builds\r\n    * dnn pose detect examples correct the order of the argument variable name\r\n* **examples**\r\n    * Fixed memory leaks in the motion detection example\r\n* **openvino**\r\n    * Update env.sh and README.md\r\n* **windows**\r\n    * use mingw-w64 8.1.0 for protobuf compile\r\n* **contrib**\r\n    * add cv::wechat_qrcode::WeChatQRCode (#949)\r\n    * Update cgo_static.go\r\n","2022-03-14T14:23:56",{"id":258,"version":259,"summary_zh":260,"released_at":261},118251,"v0.29.0","* **all**\r\n    * update to OpenCV 4.5.4\r\n* **build**\r\n    * add static build ability on windows\r\n    * use tbb for all builds for CPU accelerated operations\r\n* **cuda**\r\n    * implement a bunch of per-element operations\r\n    * add get\u002Fset\u002Freset device functions\r\n    * add NewGpuMatWithSize() to preallocate device memory\r\n    * Reshape() returns a new GpuMat with the changed data\r\n    * correct use of Stream by adding WaitForCompletion() and passing pre-allocated GpuMats\r\n* **docs**\r\n    * update ROADMAP from recent contributions\r\n* **videoio**\r\n    * Fix open video capture with api test (#895)\r\n* **calib3d**\r\n    * added EstimateAffine2D\r\n    * findChessboardCornersSB\r\n* **aruco**\r\n    * added many functions as part of initial implementation\r\n","2021-11-08T19:18:53",{"id":263,"version":264,"summary_zh":265,"released_at":266},118252,"v0.28.0","* **all**\r\n    * update to OpenCV 4.5.3\r\n    * make task and build tag for static build of OpenCV\u002FGoCV on Linux\r\n    * add Makefile tasks for OpenCV install on Nvidia Jetson\r\n    * add gotest for more colorful test output running tests from containers\r\n* **build**\r\n    * correcting output format for code coverage report\r\n    * enforce rule that all Go code is correctly formatted\r\n    * remove codecov\r\n* **core**\r\n    * add NewPointVectorFromMat() and NewPoint2fVectorFromMat() functions\r\n    * Fix possible MatProfile race by ordering remove before free.\r\n* **cuda**\r\n    * add core functions for GpuMat like Cols(), Rows(), and Type()\r\n    * initial implementation for the Flip function\r\n* **docs**\r\n    * update ROADMAP from recent contributions\r\n* **examples**\r\n    * correct list of examples and fix comment\r\n* **features2d**\r\n    * Add NewORBWithParams\r\n* **tracking**\r\n    * change MOSSE to KCF\r\n* **highgui**\r\n    * Add function CreateTrackbarWithValue to Window type.\r\n* **imgcodec**\r\n    * optimize IMEncode avoiding multiple data copies.\r\n* **imgproc**\r\n    * Add CircleWithParams function\r\n    * Add DilateWithParams() function (#827)\r\n    * Add EllipseWithParams function\r\n    * Add FillPolyWithParams function\r\n    * Add PointPolygonTest function\r\n    * Add RectangleWithParams function\r\n* **photo**\r\n    * add MergeMertens, AlignMTB and Denoising function (#848)\r\n* **xphoto**\r\n    * Add Xphoto contrib (#844)\r\n","2021-07-19T20:47:48",{"id":268,"version":269,"summary_zh":270,"released_at":271},118253,"v0.27.0","* **all**\r\n    * update to OpenCV 4.5.2\r\n* **core**\r\n    * add Append() to PointsVector\u002FPointVector\r\n    * add cv::RNG\r\n    * add implementation for Point2fVector\r\n    * add rand functions\r\n    * add test coverage for PointsVector\r\n    * create new PointsVector\u002FPointVector wrappers to avoid repetitive memory copying for seeming innocent operations involving slices of image.Point\r\n    * test coverage for Point2f\r\n    * use PointVector for everything that we can to speed up pipeline when passing around Point vectors\r\n    * use enum instead of int for Invert Method\r\n* **cuda**\r\n    * adding HoughLinesDetector and HoughSegmentDetector\r\n    * adding tests for the CannyEdgeDetector\r\n    * some refactoring of the API\r\n    * adding dockerfiles for OpenCV 4.5.2 with CUDA 11.2\r\n    * add GaussianFilter\r\n    * correct signature and test for Threshold\r\n    * implement SobelFilter\r\n    * move arithm module functions into correct location\r\n    * rename files to get rid of so many cudas\r\n    * add abs function implementation\r\n* **dnn**\r\n    * increase test coverage\r\n* **docker**\r\n    * make all Dockerfiles names\u002Ftags more consistent\r\n* **docs**\r\n    * add CUDA functions that need implementation to ROADMAP\r\n    * remove invalid sections and add some missing functions from ROADMAP\r\n* **imgproc**\r\n    * Add FindContoursWithParams function\r\n    * Add ToImageYUV and ToImageYUVWithParams\r\n* **make**\r\n    * add make task to show changelog for next release\r\n* **wechat_qrcode**\r\n    * disable module in Windows due to linker error\r\n","2021-04-09T15:12:05",{"id":273,"version":274,"summary_zh":275,"released_at":276},118254,"v0.26.0","* **all**\r\n    * update to OpenCV 4.5.1\r\n* **core**\r\n    * add Matrix initializers: eye, ones, zeros (#758)\r\n    * add multidimensional mat creation\r\n    * add ndim mat constructor\r\n    * added accumulators\r\n    * added norm call with two mats (#600)\r\n    * keep a reference to a []byte that backs a Mat. (#755)\r\n    * remove guard for DataPtrUint8 since any Mat can be treated an Uint8\r\n    * add Mat IsContinuous() function, and ensure that any Mat data pointers used to create Go slices only apply to continuous Mats\r\n    * fix buffer size for Go strings for 32-bit operating systems\r\n* **build**\r\n    * bring back codecov.io\r\n* **calib3d**\r\n    * correctly close mat after test\r\n* **dnn**\r\n    * add ReadNetFromONNX and ReadNetFromONNXBytes (#760)\r\n    * increase test coverage\r\n* **docker**\r\n    * dockerfiles for opencv gpu builds\r\n* **docs**\r\n    * corrected links to CUDA and OpenVINO\r\n    * list all unimplemented functions in photo module\r\n    * replace GoDocs with pkg docs\r\n    * update ROADMAP from recent contributions\r\n* **imgproc**\r\n    * add test coverage for GetTextSizeWithBaseline()\r\n    * close all Mats even those based on memory slices\r\n    * close Mat to avoid memory leak in ToImage()\r\n    * refactoring of ToImage and ImageToMatXX functions\r\n* **openvino**\r\n    * fix dldt repo in makefile for openvino\r\n* **os**\r\n    * adding gcc-c++ package to rpm deps\r\n* **photo**\r\n    * add SeamlessClone function\r\n* **profile**\r\n    * add created mats in Split and ForwardLayers to profile (#780)\r\n","2021-01-11T08:11:34"]