Go安装OpenCV库(gocv)常见问题

Go安装OpenCV库(gocv)常见问题

gocv是OpenCV4在Go中的绑定,使用它可以在Go里做图像处理。

 Windows安装官方介绍:https://gocv.io/getting-started/windows/

其中gocv库提供的win_build_opencv.cmd为安装过程命令:

  1. 下载opencv-4.5.0.zip并解压到C:\opencv
  2. 下载opencv_contrib-4.5.0.zip并解压到C:\opencv
  3. cmake
  4. mingw32-make
  5. mingw32-make install

编译好后,添加C:\opencv\build\install\x64\mingw\bin到环境变量。

常见问题:

1. mingw32-make过程中断,编译失败

  • 可能是由于多线程编译时有的依赖库还没有生成造成的
  • 解决办法:反复执行mingw32-make

2. Python的影响

  • 如果你的电脑装了Python,且环境变量添加了Python安装目录,可能会出现链接错误,这是因为有些lib依赖库按环境变量在Python目录中找到了,而这些库与编译不匹配。
  • 解决办法:环境变量去掉Python目录,更简单的办法是把Python目录改名,编译完成后再改回来。

3. fatal error: boostdesc_bgm.i: No such file or directory

  • 采用的是源码编译的方式,所以可以查看 build 文件夹下的日志文件 CMakeDownloadLog.txt,在日志文件CMakeDownloadLog.txt中搜索 boostdesc_bgm.i 关键词 (不是在文件夹中搜索), 发现这个文件下载失败了。
  • 解决办法:下载所有缺失文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。

    链接:https://pan.baidu.com/s/1_nipZrmFPGkYma1NpgCq4A
    提取码:t2r5

  • 总共缺了以下几个文件,都需要拷贝:

    • boostdesc_bgm.i
    • boostdesc_bgm_bi.i
    • boostdesc_bgm_hd.i
    • boostdesc_lbgm.i
    • boostdesc_binboost_064.i
    • boostdesc_binboost_128.i
    • boostdesc_binboost_256.i
    • vgg_generated_120.i
    • vgg_generated_64.i
    • vgg_generated_80.i
    • vgg_generated_48.i

执行完以上步骤后,重新在C:\opencv\build\目录下执行mingw32-make和mingw32-make install即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119513.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 云服务器怎么设置成代理服务器?

    云服务器怎么设置成代理服务器?我的云服务器本来是作为Web服务器用的。但是现在有个问题我们财务的软件,数据在联通的服务器上存放着,而我们单位的网络是移动的网络,两个连起来费劲的很,也就是软件使用起来费劲的很。我想通过云服务器中转,因为我们上云服务器速度挺快,云服务器上联通的应该也挺快的。高手知道怎么搞嘛?就像网上很多http、socks代理一样,把我的服务器变…

    2022年6月22日
    72
  • 用户态和内核态切换开销_进程切换在用户态还是内核态

    用户态和内核态切换开销_进程切换在用户态还是内核态1.切换方式从用户态到内核态切换可以通过三种方式,或者说会导致从用户态切换到内核态的操作:系统调用,这个上面已经讲解过了,在我公众号之前的文章也有讲解过。其实系统调用本身就是中断,但是软件中断,跟硬中断不同。系统调用机制是使用了操作系统为用户特别开放的一个中断来实现,如Linux的int80h中断。 异常:如果当前进程运行在用户态,如果这个时候发生了异常事件,会触发由当前运行进程切换到处理此异常的内核相关进程中 外围设备中断:外围设备完成用户请求的操作之后,会向CPU发出中断信号,这

    2022年9月18日
    3
  • snmptrap配置_snmp服务端ip和端口

    snmptrap配置_snmp服务端ip和端口一、trap的用途TRAP是提供从代理进程到管理站的异步报告机制。为了使管理站能够及时而又有效地对被管理设备进行监控,同时又不过分增加网络的通信负载,必须使用陷入(TRAP)制导的轮讯过程。代理进程负责在必要时向管理站报告异常事件,得到异常事件的报告后,管理站可以查询有关的代理,以便得到更具体的信息,对事件的原因做进一步的分析二、trap的工作流程1、agent端: A

    2022年8月20日
    25
  • [WinForm]C# ListView用法详解[通俗易懂]

    [WinForm]C# ListView用法详解[通俗易懂]转载自:http://blog.csdn.net/chen_zw/article/details/7910324#一ListView类1常用的基本属性2常用方法3常用事件二ListView的五种视图Details视图1列表头创建记得需要先创建列表头2添加数据项3显示项4移除某项5行高设置利用imageList实现6清空运行效果largeIcon视图运行效果SmallIcon视图运行效果List视图…

    2022年7月26日
    5
  • NetCMS修改之二:单击新闻附件,直接打开文件「建议收藏」

    NetCMS修改之二:单击新闻附件,直接打开文件「建议收藏」   NetCMS系统的新闻附件,是通过down.aspx页面实现下载附件的。这样做的好处可能是可以隐藏附件的真实地址,但给用户使用会带来一个小麻烦:无法使用右键单击来实现将下载的文件另存为。   经检查,此功能是在NetCMS.Publish命名空间的LabelMass类中定义的getNewsFiles实现的,文件位于NetCMS.Publish/Label/NewsParameter.

    2022年9月29日
    2
  • jprofiler监控jvm_怎么检测jps

    jprofiler监控jvm_怎么检测jps很多人在学习java的时候只是对java粗略的学了一遍,很少有人能了解jvm层面的一些东西,比如我们想看目前有多少个java进程,可以在命令行执行jps。下面我们来说说jps的一些详细的用法。jps输出正字运行的相关进程信息jps-v输出传递给jvm参数jps-l输出模块名以及包名,如果是jar则出输jar文件全名jps-m输出传递给jvm参数jps-mlv输出进程号,包名,虚拟…

    2022年9月2日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号