[保姆教程] Windows平台OpenCV以及它的Golang实现gocv安装与测试(亲测通过)

news2024/9/21 12:27:32

在这里插入图片描述

一、MinGW & CMake

  1. 预备步骤
    首先打开cmd:
c:
md mingw-w64
md cmake
  1. 下载安装MinGW-W64
    访问:
    https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/
    下载: MinGW-W64 GCC-8.1.0 的 x86_64-posix-seh 版本
    这是一个.7z文件,将它解压缩到 c:\mingw-w64 里面

  2. 下载安装 CMake
    访问:https://cmake.org/download/
    下载:Windows x64 ZIP
    解压到:c:\cmake

  3. Windows的PATH变量添加两个路径:
    C:\mingw-w64\x86_64-8.1.0-release-posix-seh-rt_v6-rev0_2\mingw64\bin

    C:\cmake\bin
    输入 exit 退出当前cmd,再次打开 cmd,输入:

gcc --help
cmake --help

如果正常显示帮助文档,说明安装完毕。


二、GOCV

  1. 打开 cmd,输入:go get -u -d gocv.io/x/gocv
  2. 输入 echo %GOPATH% 找到GOPATH路径,比如我的是:

C:\Users\rockage\go\pkg\mod\gocv.io\x\gocv@v0.33.0

  1. cd /D C:\Users\rockage\go\pkg\mod\gocv.io\x\gocv@v0.33.0
  2. 打开 win_build_opencv.cmd 文件,编辑如下:
  • 找到 set PATH=%PATH%;C:\Program Files (x86)\CMake\bin;C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
    (在前面加一个REM注释掉这行因为我们已经为MinGW和CMake做了Path管道了,这行可以注释掉或直接删除)

  • 找到:-DWITH_MSMF=OFF
    在后面添加: -DWITH_OBSENSOR=OFF
    (注意前后要用空格分开,这是关键修改)

  • 找到:
    rmdir c:\opencv\opencv-4.7.0 /s /q
    rmdir c:\opencv\opencv_contrib-4.7.0 /s /q
    (在前面加上REM注释之,这个改动不是必须的,在安装成功后也可以手动将这两个目录删除)

  • 最后一行:
    chdir /D C:\Users\rockage\go\pkg\mod\gocv.io\x\gocv@v0.33.0
    改为你的实际GOROOT路径即可,比如我的是:
    chdir /D C:\Users\rockage\go\pkg\mod\gocv.io\x\gocv@v0.33.0
    (这个也非关键修改,非强迫症患者不改也行)

  1. 修改完毕后,输入: win_build_opencv.cmd 运行这个脚本。
    (有可能这个文件是只读的,存盘的时候随便换一个别的名字就行了,对结果不影响)

  2. 安装完毕后,exit 退出cmd,为PATH变量增加一个路径:
    C:\opencv\build\bin


三、测试

  1. 重新打开cmd,输入:
    cd /D C:\Users\rockage\go\pkg\mod\gocv.io\x\gocv@v0.33.0
    (切换到GOPATH下的gocv项目目录)

  2. go run cmd\version\main.go
    (运行测试程序)

如果不报错,且正常显示版本号,说明安装成功!

gocv version: 0.33.0
opencv lib version: 4.7.0

四、后记

本文参考了GOCV的官方安装文档并填了一些小坑,感兴趣的小伙伴可以直接阅读官方文档:

  1. https://gocv.io/getting-started/windows/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659791.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文详解Softmax的性质与Self-Attention初步解析

概述 最近研究超平面排列(Hyperplane Arrangement)问题的时候,发现ReLU有其缺陷,即举例来说,ReLU 无法使用单一的超平面将分离的所有数据,完整的输出,即只会输出半个空间映射的数据,而另一半空间的数据被置…

面试---简历

项目 1.1、商品管理 新增商品 同时插入商品对应的使用时间数据,需要操作两张表:product,product_usetime。在productService接口中定义save方法,该方法接受一张Dto对象,dto对象继承自product类,并将prod…

学习open62541 --- [78] 单线程和多线程的使用场景

open62541提供多线程功能,默认不开启,即单线程, 把UA_MULTITHREADING的值设置为 > 100就可以开启多线程了。 这里单线程/多线程的意思是基于open62541运行的server内部是否使用锁去保护数据。只要server运行后还有读写操作需要做&#x…

从源码全面解析 dubbo 消费端服务调用的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

3D 顶点着色与Phong 反射模型

Phong 反射模型有时被称为“Phong 照明”或“Phong 照明”。它由环境光照、漫反射(朗伯反射)、镜面反射三部分组成。 Phong 反射模型提供了一个方程式,用于计算表面上每个点的光照,I_p: 第一部分代表环境光项。在GLSL代…

X书hmac参数

被删重新发送 全文可以查看: 上面一遍unidbg解密shield文章 unidbg - 》 callObjectMethodV方法填写你的小红书路径下s.xml里的值: 或者在抓包响应头中: 查找xy-ter-str hmac 结果都是在,响应头里,所以 hmac 是服务器下发给客户端的. Over…

黑马头条.

文章目录 前言一、项目概述1.1 能收获什么1.2 项目概述1.3 项目术语1.4 业务说明 二、技术栈2.1技术栈整体框架图2.2技术栈简介 三、nacos环境搭建3.1 虚拟机镜像准备3.2 nacos的安装 四、初始工程搭建4.1 开发环境准备 五、实现登录功能5.1 需求分析5.2 表结构分析5.3 思路分析…

22道常见RocketMQ面试题以及答案

面试宝典到手,搞定面试,不再是难题,系列文章传送地址,请点击本链接。 1、RocketMQ是什么? 2、RocketMQ有什么作用? 3、RoctetMQ的架构 4、RoctetMQ的优缺点 8、消息过滤,如何实现? 9、消息去重,如果…

Elasticsearch 基本使用(四)聚合查询

聚合查询 概述单字段聚合查询统计分组后的数量非文档字段分组文档字段分组 其他聚合运算统计平均值统计总金额统计最大值自定义聚合结果排序简单聚合小结 多字段聚合查询 概述 说到聚合查询,马上会想到 SQL 中的 group by,ES中也有类似的功能&#xff0…

编程语言发展历史

文章目录 语言的发展时间轴语言世代时间轴1940年前-机器语言时代1940年后-汇编语言时代1950年-高级语言的初生1960年-高级语言的进一步成熟1980年-各大语言的进一步增强1990年代-飞速发展时代2000年-新时代 高级编程语言的分类解释型与编译型面向过程与面向对象 对语言的评价Ti…

【学习学习】NLP理解层次模型

NLP(Neuro-Linguistic Programming,神经语言程序学),由两位美国人理查得.班德勒(Richard Bandler)与约翰.葛瑞德(John Grinder)于1976年创办,并在企业培训中广泛使用。美…

PyTorch 深度学习 || 4. 自编码网络 | Ch4.3 卷积自编码网络图像去噪

卷积自编码网络图像去噪 1. 数据的准备 先简单介绍一下训练网络使用到的图像数据集——STL10,该数据集可以通过torchvision.datasets模块中的STL10()函数进行下载,该数据集共包含三种类型数据,分别是带有标签的训练集和验证集,分别包含5000…

Cookie增删改查方法封装(低内存开销版)

本文章中的低内存开销是指在获取cookie的时候不进行字符串—>数组的转变,全程使用sliceindexOf切割字符串,不创建和操作数组,节约内存,本文代码已存放到github中,后续会持续完善功能,传送门:…

二进制方式部署kubernetes集群

二进制方式部署kubernetes集群 1、部署k8s常见的几种方式 1.1 kubeadm Kubeadm 是一个 k8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部署 Kubernetes 集群。 Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难…

掌握Python的X篇_4_开发工具ipython与vscode的安装使用

本篇将会介绍两个工具的安装及使用来提高Python的编程效率。 ipython:比python更好用的交互式开发环境vscode:本身是文本编辑器,通过安装相关的插件vscode可以作为python集中开发环境使用 掌握Python的X篇_4_开发工具ipython与vscode的安装使…

第四章 linux编辑器——vim的使用

第四章 linux编辑器——vim的使用 一、什么是vim?二、vim的基本操作1、模式之间的相互切换2、vim的常见命令集(1)正常模式的常见命令a. 模式切换b. 光标移动c.删除文字d.复制e.替换f.撤销g.更改 (2)底行模式的常见命令…

复习之linux的网络配置

一、基本定义 1.IP IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。 电脑之间要实现网络通信,就必须要有一个合法的ip地址。 IP地址网络地址主机地址(又称:主机号和网络号组成&#xff09…

【MySQL】MyISAM中的索引方案

介绍 B树索引使用存储引擎如表所示: 索引/存储引擎MyISAMInnoDBMemoryB树索引支持支持支持 多个存储引擎支持同一种类型的索引,但是他们的实现原理是不同的。 InnoDB和MyISAM默认的索引是B树索引,而Memory默认的索引是Hash索引。 MyISAM…

【软件测试】在Windows使用Docker搭建CentOS环境(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 我们做软件测试在…

租服务器跑代码、pycharm连接服务器跑代码、Xshell连接服务器运行代码

一、服务器 1.1 注册 推荐使用矩池云服务器,按时按量计费,服务器自带镜像可选,可将要运行的项目上传到网盘 注册网址:矩池云 1.2 租用 选择合适的租用 1.3 选择镜像 选择合适的系统镜像 1.4 复制命令 进入租用列表&#xff…