视觉笔记(1)cmake+OpenCV+OpenCV_contrib编译及报错总结和解决

视觉笔记(1)cmake+OpenCV+OpenCV_contrib编译及报错总结和解决

  • 前言

前前后后删了,下载,编译十多次总算成功了,大大小小的坑踩了个便使用cmake编译OpenCV和OpenCV_contrib链接库时遇到问题解决总结

下载方式:

  • 官网下载

OpenCV官网下载:https://opencv.org/releases/
官网图片以4.5.5为例,如果要搭配4.5.5的链接库使用,不建议下载这个版本,我下载时有bug,之后选择了下边讲的4.4.0的稳定版本

  • Github源码下载

    OpenCV Github源码下载:https://github.com/opencv/opencv

  • 链接库下载地址

    链接库OpenCV_contrib
    Github源码下载:https://github.com/opencv/opencv_contrib

  • 网盘下载 内含有OpenCV440,OpenCV_contrib和ffmpeg,ffmpeg可以选择安装与否
    链接:https://pan.baidu.com/s/1hfoLV-UGpE08QKgoMJUglw提取码:q1ix
    并且已经使用Cmake编译好放入了build文件夹下,这个我没测试过别的电脑上是否可以使用,建议删除内容重新编译一次
    清空我创建好的build或者删除重新创建
    !

关于安装编译OpenCV与OpenCV_contrib源码

1、在官网下载的OpenCV4.x.exe其实就是一个安装包,直接正常下载解压就好,如果只使用opencv的话这就足以了参考这篇文章:文章链接
2、使用cmake编译,编译前创建一个叫做build的文件夹

添加编译路径
3、点击configure进行编译,这时会弹出选择框,第二行选择x64即可,其他不用动,直接编译configure
4、编译框可能会有报错,如果出现python2.7这种字样则不需要管,是因为电脑中没有python2.7,再次编译一次后会自动消除,其他报错之后再讲,先说流程!!!
5、上侧爆红没有事,再次编译后会自动消除
6、接下来开始编译contrib找到OPENCV_EXTRA_MODULES_PATH,添加自己opencv_contrib文件的绝对路径

遇到的问题及解决方法:

  • 在cmake编译时,存在编译框报红错的情况,这是因为有些文件无法下载下来导致的,可以找到报错的地方,在错误下边隔着一行空白有一个**.txt**的绝对路径,将其打开会看到一个报错日志,在日志中找到对应的自己电脑中存放的报错文件的对应地址,可以看到文件大小时0k的,然后在日志中找到对应的下载地址,需要自己手动下载,将其下载下来,放到对应的文件夹,并且将其名字改为之前未下载完成的名字,将0k的文件删掉,这样再次编译就没有报错了。
  • VS编译时有报错,大多是语法报错问题,但是我检查完代码之后没问题,可能是编译的环境或者使用的编译器有问题,这个我当时是装opencv455和对应的链接库,之后实在是没搞明白,退了一个版本,装的440,在环境什么的都配置好的情况下是没有再出现报错。
  • VS程序的环境配置按图中箭头所示打开
    将这个创建地址放到一个常用可以找到的地方,配置一次环境之后直接调用即可
    创建配置文件
    右键点击配置文件->属性,打开在如下图中配置环境:
    包含目录中配置
    库目录中配置
    链接器中配置
    配置链接器输入时注意,文件中后边带有d的是Debug模式下的依赖,文件中不带有d的是Release模式下的依赖,两个依赖最好是别放一个配置文件下,在opencv455中放一起可与i显示图像,在opencv440中图像无法显示,删除其中一个配置重启VS或者重启电脑之后图像可以显示。
    同样以上关于环境配置的图片是Debug 的,关于Release的同理。
  • 关于运行时报错的问题
  • 丢失了opencv_worldxxx.dll的文件的解决办法,其原因是计算机找不到这个可执行文件,对于这个可能是Cmake编译时选择x64位时出错,重新编译Cmake和VS可能会解决此问题(我是这么解决的),也可以参考此 链接,将下图的文件移动到C:\Windows\System32此文件目录下就好
    移动文件目录
  • 关于编译后显示弹窗opencv中无法打开opencv_world,这个很可能是环境没有配置好,检查环境,或者Cmake编译和VS编译有问题,重新编译
  • 关于编译后没有图像的问题,这个很可能是路径有问题,在正常的目录下是反斜杠,反斜杠 \ 在代码中是转义字符的意思,将其全部变为正斜杠 / 就好,如果图像还是不显示就有可能还是环境配置的问题,就是我上方环境配置中提到的链接器的输入将Debug模式和Release模式的依赖放在一起了,将其拆开删除其一之后,重启VS再次编译就会有图像出现了。
  • 再补充一下关于Cmake编译时报错有些文件即使手动下载也无法下载的,我在网盘中对应的目录有文件,可以直接copy,但是切记opencv源码版本得与OpenCV_contrib链接库所对应。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年5月20日
下一篇 2022年5月21日

相关推荐