gocv-go语言调用opencv入门

1、概述

 GoCV是Go语言版的opencv二次封装,基于动态库opencv4。

官方地址:https://gocv.io/

win10环境,安装gocv有点棘手,需要先安装opencv,安装opencv是一个很痛苦的经历,所以在此搞了一个绿色版本环境,可以直接使用。

2、环境配置

  • 64bit win10

3、安装包介绍

链接:https://pan.baidu.com/s/1Uzq1hSj0ndz0lCY063OLJA 
提取码:1bbo

opencv-4.3.0.7z

为在win10环境下编译的动态库。

x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z

为64位环境下的gcc编译器。

gocv-df73d544675c731b2197d46622224839e1af07a6.zip

为gocv的源码。

4、安装包安装

%GOPATH%,目前作者的路径为E:\GoWorks

1、把gocv-df73d544675c731b2197d46622224839e1af07a6.zip解压到路径为%GOPATH%\src\gocv.io\x\gocv,如下图所示:

2、把opencv-4.3.0.7z解压到C盘。如下图所示:

3、把mingw64-x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z解压到C盘。如下图所示:

4、配置C:\mingw64\bin到环境变量path。如下图所示:

5、配置C:\opencv\build\install\x64\mingw\bin到环境变量path。如下图所示:

至此,已经安装完毕。

5、验证环境

1、运行cmd进入dos。

2、输入chdir %GOPATH%\src\gocv.io\x\gocv,确认回车。

3、输入go run cmd\version\main.go,确认回车,返回以下信息表示成功。

gocv version: 0.23.0

opencv lib version: 4.3.0

至此,gocv的环境已经完成了。

6、测试代码

1、显示图片。

package main
import (
	"fmt"
	"gocv.io/x/gocv"
)
func main(){
	fmt.Printf("gocv version: %s\n", gocv.Version())
	fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion())
	
	window := gocv.NewWindow("Hello")
	
	img := gocv.IMRead("lena.jpg",gocv.IMReadColor)
	
	if img.Empty() {
		fmt.Printf("Error reading image from: %v\n", "lena.jpg")
		return
	}
	
	for {
		window.IMShow(img)
		if window.WaitKey(1) >= 0 {
			break
		}
	}
}

2、显示视频。

package main
import (
	"fmt"
	"gocv.io/x/gocv"
)
func main(){

	fmt.Printf("gocv version: %s\n", gocv.Version())
	fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion())

	webcam, err := gocv.VideoCaptureDevice(0)
	if err != nil{
		fmt.Printf("Error opening video capture device: %v\n", 0)
		return
	}
	defer webcam.Close()

	window := gocv.NewWindow("Capture Window")
	defer window.Close()

	img := gocv.NewMat()
	defer img.Close()

	for {
		if ok := webcam.Read(&img); !ok {
			fmt.Printf("Device closed: %v\n", 0)
			return
		}
		if img.Empty() {
			continue
		}
		window.IMShow(img)
		if window.WaitKey(1) == 27 {
			break
		}
	}
}

更多的例子,请查看%GOPATH%\src\gocv.io\x\gocv\cmd,里面有很多例子学习。

7、Gocv的API接口介绍

官方文档:https://godoc.org/gocv.io/x/gocv

GoCV是一个支持Linux、macOS和Windows上最新版本的Go和OpenCVGolang包。它使得Go语言能够与最新的OpenCV生态系统兼容,并成为一个一流的客户端。你可以使用GoCV来进行图像处理和计算机视觉的开发,例如显示图片和视频。你可以使用gocv.IMRead函数来读取图片,并使用gocv.IMShow在窗口中显示图片。相应的代码示例如下: ``` package main import ( "fmt" "gocv.io/x/gocv" ) func main() { fmt.Printf("gocv version: %s\n", gocv.Version()) fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion()) window := gocv.NewWindow("Hello") img := gocv.IMRead("lena.jpg", gocv.IMReadColor) if img.Empty() { fmt.Printf("Error reading image from: %v\n", "lena.jpg") return } for { window.IMShow(img) if window.WaitKey(1) >= 0 { break } } } ``` 对于显示视频,你可以使用gocv.VideoCaptureDevice函数来打开视频捕获设备,然后使用gocv.VideoCapture的Read方法读取每一帧图像并显示。相应的代码示例如下: ``` package main import ( "fmt" "gocv.io/x/gocv" ) func main() { fmt.Printf("gocv version: %s\n", gocv.Version()) fmt.Printf("opencv lib version: %s\n", gocv.OpenCVVersion()) webcam, err := gocv.VideoCaptureDevice(0) if err != nil { fmt.Printf("Error opening video capture device: %v\n", 0) return } defer webcam.Close() window := gocv.NewWindow("Capture Window") defer window.Close() img := gocv.NewMat() defer img.Close() for { if ok := webcam.Read(&img); !ok { fmt.Printf("Device closed: %v\n", 0) return } if img.Empty() { continue } window.IMShow(img) if window.WaitKey(1) == 27 { break } } } ``` 以上代码示例可以帮助你在Golang中使用OpenCV进行图像和视频的处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [gocv-go语言调用opencv入门](https://blog.csdn.net/xinlinhack/article/details/119713374)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [使用 Go (Golang) 使用 OpenCV 绘制对象 GoCV](https://blog.csdn.net/woshicver/article/details/128783734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值