专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

gocv/opencv Docker 镜像 - 轩辕镜像

opencv
gocv/opencv
GoCV是Go语言对OpenCV 4的绑定库,支持Linux、macOS、Windows平台,提供视频捕获、人脸检测、对象识别等计算机视觉功能,并支持CUDA和Intel OpenVINO硬件加速。
14 收藏0 次下载activegocv镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

GoCV

![GoCV]([***]

![Go Reference]([] ![CircleCI Build status]([] ![AppVeyor Build status]([] ![Go Report Card]([] ![License]([***]

镜像概述和主要用途

GoCV包提供Go语言对OpenCV 4计算机视觉库的绑定。该包支持最新版本的Go和OpenCV(v4.5.3),适用于Linux、macOS和Windows系统,旨在使Go语言成为与OpenCV生态系统最新发展兼容的“一等”客户端。

GoCV支持使用Nvidia GPU的CUDA硬件加速,详情参见CUDA README;同时支持Intel OpenVINO工具包,详情参见OpenVINO README。

核心功能和特性

  • OpenCV版本支持:兼容OpenCV 4.5.3,涵盖其主要计算机视觉功能
  • 多平台兼容:支持Linux(Ubuntu)、macOS、Windows和Raspbian系统
  • 硬件加速:
    • Nvidia CUDA加速,提升GPU计算性能
    • Intel OpenVINO工具包,优化深度学习推理
  • 丰富功能集:
    • 视频捕获与处理(摄像头、视频文件)
    • 图像操作(滤波、转换、特征提取)
    • 对象检测与识别(级联分类器、TensorFlow集成)
    • 视频流传输(MJPEG流)
    • 人脸检测与跟踪

使用场景和适用范围

  • 实时视频处理:摄像头监控、视频流分析
  • 计算机视觉应用开发:人脸检测、手势识别、物体计数
  • 深度学习集成:结合TensorFlow等框架实现图像分类
  • 嵌入式系统:Raspberry Pi等设备上的视觉应用部署
  • 科研与教育:计算机视觉算法原型验证

使用方法示例

Hello, video示例

以下示例打开设备“0”(通常为默认摄像头),读取视频帧并在GUI窗口显示:

go
package main

import (
	"gocv.io/x/gocv"
)

func main() {
	webcam, _ := gocv.OpenVideoCapture(0)
	window := gocv.NewWindow("Hello")
	img := gocv.NewMat()

	for {
		webcam.Read(&img)
		window.IMShow(img)
		window.WaitKey(1)
	}
}
人脸检测示例

!GoCV

该示例打开摄像头,使用级联分类器检测人脸并绘制绿色矩形框:

go
package main

import (
	"fmt"
	"image/color"

	"gocv.io/x/gocv"
)

func main() {
    // 设置使用视频捕获设备0
    deviceID := 0

	// 打开摄像头
	webcam, err := gocv.OpenVideoCapture(deviceID)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer webcam.Close()

	// 打开显示窗口
	window := gocv.NewWindow("Face Detect")
	defer window.Close()

	// 准备图像矩阵
	img := gocv.NewMat()
	defer img.Close()

	// 人脸检测框颜色(蓝色)
	blue := color.RGBA{0, 0, 255, 0}

	// 加载人脸分类器
	classifier := gocv.NewCascadeClassifier()
	defer classifier.Close()

	if !classifier.Load("data/haarcascade_frontalface_default.xml") {
		fmt.Println("错误:无法读取分类器文件 data/haarcascade_frontalface_default.xml")
		return
	}

	fmt.Printf("开始读取摄像头设备: %v\n", deviceID)
	for {
		if ok := webcam.Read(&img); !ok {
			fmt.Printf("无法读取设备 %v\n", deviceID)
			return
		}
		if img.Empty() {
			continue
		}

		// 检测人脸
		rects := classifier.DetectMultiScale(img)
		fmt.Printf("发现 %d 个人脸\n", len(rects))

		// 在图像上绘制人脸矩形框
		for _, r := range rects {
			gocv.Rectangle(&img, r, blue, 3)
		}

		// 在窗口显示图像,等待1毫秒
		window.IMShow(img)
		window.WaitKey(1)
	}
}
更多示例

项目cmd目录提供多种实用命令行工具示例:

  • 图像捕获保存:从摄像头捕获并保存图像
  • MJPEG视频流:实现视频流传输
  • 物体计数:统计穿过指定线的物体数量
  • TensorFlow分类器:结合OpenCV与TensorFlow进行对象分类

安装说明

前置要求

安装GoCV前需先安装匹配版本的OpenCV(当前需OpenCV 4.5.3),以下是各系统安装指南。

Ubuntu/Linux
快速安装
  1. 克隆仓库:

    shell
    cd $HOME/folder/with/your/src/
    git clone [***]
    cd gocv
    
  2. 使用Makefile安装OpenCV 4.5.3:

    shell
    make install
    

    如需静态库:

    shell
    make install BUILD_SHARED_LIBS=OFF
    
  3. 成功安装后将显示:

    gocv version: 0.28.0
    opencv lib version: 4.5.3
    
使用CUDA

参见cuda目录获取详细说明。

使用OpenCV+CUDA+OpenVINO
shell
cd $HOME/folder/with/gocv/
make install_all

如需静态库:

shell
make install_all BUILD_SHARED_LIBS=OFF
验证安装
shell
cd $HOME/src/gocv.io/x/gocv
go run ./cmd/version/main.go

应输出:

gocv version: 0.28.0
opencv lib version: 4.5.3
自定义环境变量

禁用pkg-config自动配置,手动设置CGO环境变量:

shell
export CGO_CPPFLAGS="-I/usr/local/include"
export CGO_LDFLAGS="-L/usr/local/lib -lopencv_core -lopencv_face -lopencv_videoio -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lopencv_objdetect -lopencv_features2d -lopencv_video -lopencv_dnn -lopencv_xfeatures2d"
go run -tags customenv ./cmd/version/main.go
macOS
  1. 安装Homebrew后执行:

    shell
    brew install opencv pkgconfig
    
  2. 验证安装:

    shell
    cd $HOME/folder/with/your/src/gocv
    go run ./cmd/version/main.go
    
Windows
  1. 安装MinGW-W64(选择posix线程和seh异常处理)和CMake
  2. 添加MinGW到系统PATH:C:\Program Files\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev2\mingw64\bin
  3. 执行安装脚本:
    cmd
    chdir %GOPATH%\src\gocv.io\x\gocv
    win_build_opencv.cmd
    
  4. 添加OpenCV到PATH:C:\opencv\build\install\x64\mingw\bin
  5. 验证安装:
    cmd
    go run cmd\version\main.go
    
Raspbian
shell
cd $HOME/folder/with/your/src/
git clone [***]
cd gocv
make install_raspi

Docker部署

构建Docker镜像

项目提供Dockerfile,可通过Makefile快速构建:

shell
make docker

指定Go版本:

shell
make docker GOVERSION='1.15'
在macOS上运行GUI程序
  1. 安装依赖:

    shell
    brew cask install xquartz
    brew install socat
    

    安装后需注销并重新登录

  2. 配置XQuartz:

    • 打开XQuartz,在偏好设置→安全性中勾选“允许网络连接”
  3. 启动socat代理:

    shell
    socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
    
  4. 运行容器:

    shell
    docker run -it --rm -e DISPLAY=docker.for.mac.host.internal:0 your-gocv-app
    

    注意:Docker for Mac不支持摄像头设备,无法运行依赖摄像头的应用

内存管理与调试

GoCV的Mat对象需显式关闭以避免内存泄漏,可使用-tags matprofile构建标签启用内存分析:

shell
go run -tags matprofile cmd/version/main.go

通过gocv.MatProfile.Count()获取未释放Mat数量,或集成HTTP调试接口监控:

go
import _ "net/http/pprof"
// 启动HTTP服务后访问 http://localhost:6060/debug/pprof/gocv.io/x/gocv.Mat

贡献与许可

  • 贡献指南:参见CONTRIBUTING.md
  • 项目路线图:参见ROADMAP.md
  • 许可协议:Apache 2.0许可证,详情参见LICENSE.txt<|FCResponseEnd|>===SHORT_DESC=== GoCV是Go语言对OpenCV 4的绑定库,支持Linux、macOS、Windows平台,提供视频捕获、人脸检测、对象识别等计算机视觉功能,并支持CUDA和Intel OpenVINO硬件加速。

===FULL_DESC===# GoCV

![GoCV]([***]

![Go Reference]([] ![CircleCI Build status]([] ![AppVeyor Build status]([] ![Go Report Card]([] ![License]([***]

镜像概述和主要用途

GoCV包提供Go语言对OpenCV 4计算机视觉库的绑定。该包支持最新版本的Go和OpenCV(v4.5.3),适用于Linux、macOS和Windows系统,旨在使Go语言成为与OpenCV生态系统最新发展兼容的"一等"客户端。

GoCV支持使用Nvidia GPU的CUDA硬件加速,详情参见CUDA README;同时支持Intel OpenVINO工具包,详情参见OpenVINO README。

核心功能和特性

  • OpenCV版本支持:兼容OpenCV 4.5.3,涵盖其主要计算机视觉功能
  • 多平台兼容:支持Linux(Ubuntu)、macOS、Windows和Raspbian系统
  • 硬件加速:
    • Nvidia CUDA加速,提升GPU计算性能
    • Intel OpenVINO工具包,优化深度学习推理
  • 丰富功能集:
    • 视频捕获与处理(摄像头、视频文件)
    • 图像操作(滤波、转换、特征提取)
    • 对象检测与识别(级联分类器、TensorFlow集成)
    • 视频流传输(MJPEG流)
    • 人脸检测与跟踪

使用场景和适用范围

  • 实时视频处理:摄像头监控、视频流分析
  • 计算机视觉应用开发:人脸检测、手势识别、物体计数
  • 深度学习集成:结合TensorFlow等框架实现图像分类
  • 嵌入式系统:Raspberry Pi等设备上的视觉应用部署
  • 科研与教育:计算机视觉算法原型验证

使用方法示例

Hello, video示例

以下示例打开设备"0"(通常为默认摄像头),读取视频帧并在GUI窗口显示:

go
package main

import (
	"gocv.io/x/gocv"
)

func main() {
	webcam, _ := gocv.OpenVideoCapture(0)
	window := gocv.NewWindow("Hello")
	img := gocv.NewMat()

	for {
		webcam.Read(&img)
		window.IMShow(img)
		window.WaitKey(1)
	}
}
人脸检测示例

!GoCV

该示例打开摄像头,使用级联分类器检测人脸并绘制绿色矩形框:

go
package main

import (
	"fmt"
	"image/color"

	"gocv.io/x/gocv"
)

func main() {
    // 设置使用视频捕获设备0
    deviceID := 0

	// 打开摄像头
	webcam, err := gocv.OpenVideoCapture(deviceID)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer webcam.Close()

	// 打开显示窗口
	window := gocv.NewWindow("Face Detect")
	defer window.Close()

	// 准备图像矩阵
	img := gocv.NewMat()
	defer img.Close()

	// 人脸检测框颜色(蓝色)
	blue := color.RGBA{0, 0, 255, 0}

	// 加载人脸分类器
	classifier := gocv.NewCascadeClassifier()
	defer classifier.Close()

	if !classifier.Load("data/haarcascade_frontalface_default.xml") {
		fmt.Println("错误:无法读取分类器文件 data/haarcascade_frontalface_default.xml")
		return
	}

	fmt.Printf("开始读取摄像头设备: %v\n", deviceID)
	for {
		if ok := webcam.Read(&img); !ok {
			fmt.Printf("无法读取设备 %v\n", deviceID)
			return
		}
		if img.Empty() {
			continue
		}

		// 检测人脸
		rects := classifier.DetectMultiScale(img)
		fmt.Printf("发现 %d 个人脸\n", len(rects))

		// 在图像上绘制人脸矩形框
		for _, r := range rects {
			gocv.Rectangle(&img, r, blue, 3)
		}

		// 在窗口显示图像,等待1毫秒
		window.IMShow(img)
		window.WaitKey(1)
	}
}
更多示例

项目cmd目录提供多种实用命令行工具示例:

  • 图像捕获保存:从摄像头捕获并保存图像
  • MJPEG视频流:实现视频流传输
  • 物体计数:统计穿过指定线的物体数量
  • TensorFlow分类器:结合OpenCV与TensorFlow进行对象分类
查看更多 opencv 相关镜像 →
demisto/opencv logo
demisto/opencv
by Demisto, A Palo Alto Networks Company
认证
暂无描述
100K+ pulls
上次更新:21 天前
alpine/opencv logo
alpine/opencv
by alpine
暂无描述
7.6K pulls
上次更新:5 年前
haminawireless/opencv logo
haminawireless/opencv
by haminawireless
暂无描述
10K+ pulls
上次更新:9 天前
dustynv/opencv logo
dustynv/opencv
by dustynv
OpenCV Docker镜像,为Jetson平台(L4T系统)提供带CUDA加速的计算机视觉库,支持4.5.0、4.8.1、4.9.0等版本,依赖CUDA、cuDNN等组件,是AI模型部署和视觉应用开发的基础依赖。
4.6K pulls
上次更新:8 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
gocv/opencv
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429