Project Icon

gocv

Go语言的OpenCV绑定,支持CUDA和OpenVINO加速

GoCV提供了Go语言对OpenCV 4的绑定,支持最新版本的Go和OpenCV(v4.10.0),兼容Linux、macOS和Windows。它支持Nvidia GPU的CUDA加速和Intel OpenVINO工具包,适用于视频捕捉和人脸检测等计算机视觉任务。详细的安装指南和示例代码帮助用户快速入门,支持Docker开发并可定制安装环境。

GoCV 项目介绍

概述

GoCV 是一个为 OpenCV 计算机视觉库提供 Go 语言接口的项目。它支持最新版本的 Go 和 OpenCV(如 v4.10.0),并可在 Linux、macOS 和 Windows 平台上运行。GoCV 的目标是使 Go 语言在 OpenCV 生态系统中成为一流的客户端。

特性

硬件加速支持

GoCV 支持 Nvidia GPU 的 CUDA 硬件加速,使用这一特性可以显著提高处理速度。此外,还支持 Intel OpenVINO 工具包,更好地利用硬件资源从而提高运行效率。

视频捕获与处理

  • 视频捕获: GoCV 能够打开视频捕获设备,并通过一个 GUI 窗口展示视频。简单范例如“Hello, video”中的示例代码。

  • 人脸检测: GoCV 能够使用外部数据文件(如 haarcascade 文件)加载人脸检测分类器,以检测视频流中的人脸,并在检测到的人脸上绘制一个矩形。

示例代码

这里是一个简单的视频处理示例,它捕获视频流并在窗口中展示:

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)
	}
}

此外,人脸检测可通过以下代码实现:

package main

import (
	"fmt"
	"image/color"
	"gocv.io/x/gocv"
)

func main() {
	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("Error reading cascade file")
		return
	}

	for {
		if ok := webcam.Read(&img); !ok {
			fmt.Printf("cannot read device %v\n", deviceID)
			return
		}
		if img.Empty() {
			continue
		}

		rects := classifier.DetectMultiScale(img)
		for _, r := range rects {
			gocv.Rectangle(&img, r, blue, 3)
		}

		window.IMShow(img)
		window.WaitKey(1)
	}
}

安装方法

支持不同操作系统的安装方法,确保用户能够根据平台轻松搭建 GoCV 开发环境。

Ubuntu/Linux

可以使用 Makefile 快速安装 OpenCV 4.10.0:

cd 到你希望安装 GoCV 的目录
git clone https://github.com/hybridgroup/gocv.git
cd gocv
make install

macOS

使用 Homebrew 安装 OpenCV 4.10.0:

brew install opencv

Windows

通过下载并安装 MinGW-W64 和 CMake 进行安装,具体安装步骤包括设置环境变量。

Raspbian & Docker 以及更多支持

GoCV 还提供适用于 Raspberry Pi 和 Docker 的安装说明,确保用户在更多设备和应用场景下能顺利安装和使用。

如何验证安装

安装成功后,可以通过运行示例代码来验证。例如:

go run ./cmd/version/main.go

这将输出 GoCV 以及 OpenCV 的版本信息,以确认安装无误。

贡献方式

GoCV 鼓励开发者按照项目贡献指南参与贡献,参与项目未来的发展方向。完整解决如何使用和贡献的指南可在项目仓库找到。

总结来说,GoCV 是一个功能全面的开源项目,为 OpenCV 提供了强大的 Go 语言接口,易于安装和使用,并拥有广泛的跨平台支持。无论是个人实验还是大型项目,都能够集成并使用该工具进行各种计算机视觉任务。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号