目录
1.先重新下载安装Qt,编译器选择为vs2017系列的
2.vs2017安装及环境变量配置
3.basler相机
4.Opencv版本下载
5.cmake下载安装
6.使用cmake,用vs2017编译opencv
7.安装过程的一些图:
8.安装过程出现的问题:
9.安装心得:
起源:之前的opencv和Qt都是基于mingw编译器下载编译的,但是现在因为要在Qt中用到pylon,但是pylon的编译不能用mingw编译器,所以想换成mscv系列的,这里我用的是vs2017版。
Qt5.9.0+vs2017+opencv3.4.1+cmake3.9.1
主要参考:https://www.cnblogs.com/lzhu/p/8198654.html
opencv window7+vs2017+cmake+opencv3.4.1编译、开发环境配置及测试:https://www.cnblogs.com/lzhu/p/8198654.html
Qt 各版本下载地址https://blog.csdn.net/lsfreeing/article/details/73064954
Qt官网下载链接http://download.qt.io/archive/qt/
Qt学习:Qt开源社区http://www.qter.org/
这时,之前的opencv也不能用啦,因为之前的opencv也是选择的mingw编译器,那么就需要用vs2017来重新编译opencv,在cmake中实现
qmake问题:顺序:qmake->构建->运行
调试器安装:Qt编译器选择为vs系列时,很有可能会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试器是CDB(对应MinGW的Qt使用GDB调试器)【这个不是必选项,这是为了之后调试】
CDB下载及安装参考链接:
https://blog.csdn.net/yanhuangzhinu0/article/details/50957717
http://blog.163.com/qimo601@126/blog/static/1582209320162102559368/
此时,在Qt中工具->选项->Debugger中可以自动搜索到CDB。
安装kit过程中几个重要截图:
https://jingyan.baidu.com/article/a948d6512f00d70a2dcd2edc.html visual安装
https://jingyan.baidu.com/article/b2c186c83eb046c46ff6ff68.html vs2017环境变量
相机pylon安装
相机basler配置
https://opencv.org/opencv-3-4.html opencv压缩包下载(更可取)
https://blog.csdn.net/quxiaoxia1986/article/details/52352785 opencv的exe文件下载
下载:https://cmake.org/download/ 选择64/32位电脑,以.msi结尾的即可。
安装:依次下一步就可以,安装目录下的bin->cmake-gui.exe是cmake主要界面。
参考链接:
https://www.cnblogs.com/lzhu/p/8198654.html
https://blog.csdn.net/qiurisuixiang/article/details/8665278
在“所有程序”中,或者找到cmake安装地址,如E:\cmake\bin中,点击cmake-gui.exe即可打开cmake界面,
where is the source code中直接填写opencv的源码,使用压缩包的,就是压缩文件的地址
(参考https://blog.csdn.net/ganwenbo2011/article/details/79096984)
where to build the binaries中直接填写我们创建的用来存放opencv编译的生成文件
点击“configuing”,显示“configuing done”后,参考链接https://blog.csdn.net/qiurisuixiang/article/details/8665278,勾选了WITH_OPENGL和WITH_QT两项,再次点击configure,(时间也蛮久),成功后,再参考https://www.cnblogs.com/lzhu/p/8198654.html,点击“Generate”,这个较快,当显示“configuing done”和“Generate done”后,点击“open project”,这时会跳到下载好的vs2017,参考前面链接进行opencv的配置即可。点击图标行中“生成”->“批生成”,勾选INSTALL的那两项,其他项目不勾选,进行“生成”,这个过程比较久。之后,参考https://www.cnblogs.com/lzhu/p/8198654.html结合自己的opencv版本和图片路径,即可。
https://www.cnblogs.com/lifeofershisui/p/7445062.html 也可参考
https://blog.csdn.net/sinat_36264666/article/details/73135823?ref=myread
1.configuring done图:
2.configuring done、Generating done图:
3.open project后出错
推测原因:可能是我之前安装的python路径有中文,而在cmake页面有关python的项也显示乱码,如下图
故:把关于python的都勾掉,重新open project,这样就好了,如下图
4.根据openvc配置vs后,vs成功显示图像
图片退出时显示图如下:
5.Qt中显示图片
创建新项目:new project
在.pro文件中添加opencv相关的头文件和库文件,如对应我的安装目录,添加如下文件
INCLUDEPATH += E:\opencv_3.2\opencv3.4.1_build\install\include E:\opencv_3.2\opencv3.4.1_build\install\include\opencv2
#不加d表示是release模式
LIBS += -LE:\opencv_3.2\opencv3.4.1_build\install\x64\vc15\lib -lopencv_core341 -lopencv_highgui341 -lopencv_imgcodecs341\
-lopencv_imgproc341
main.cpp如下
//正确,在qt上可显示图片 //用release模式
#include
#include
//#include
//#include
#include
using namespace std;
//using namespace Pylon;
using namespace cv;
int main()
{
Mat img = imread("E:\\opencv_3.2\\image\\1.jpg");
imshow("image", img);
waitKey(0);
return 0;
}
构建->执行qmake =》 构建项目 =》 运行
则可显示图片啦!
1.非vs2017版本出现
‘cl' 不是内部或外部命令,也不是可运行的程序 或批处理文件
https://blog.csdn.net/u010900606/article/details/79215756 没有安装c++
https://blog.csdn.net/soft_fa/article/details/19488735 环境变量问题
https://blog.csdn.net/sinat_29288207/article/details/56014812?locationNum=2&fps=1 同上
https://www.cnblogs.com/zhanggaofeng/p/6671084.html
https://blog.csdn.net/debugconsole/article/details/8230933
2.cmake配置opencv时
1)因为之前cmake中配置了编译器,使得点击“config”时按之前默认编译器进行配置,导致配置失败
解决方法:在cmake.exe执行起来后,点击file->delete cache,这样就可以重新配置编译器啦
2)开始时用的是opencv3.2.0版本,config时出现opencv_ffmpeg.dll..下载不下来的问题,(有时是网速原因)在网上找了很多资料,可参考以下链接,最终以失败告终,最终选择的是换opencv版本,opencv3.4.1,config成功,显示“configuring done”
参考链接:
https://blog.csdn.net/qq_38880380/article/details/78013056 从地址中找
https://www.2cto.com/kf/201707/661163.html
https://github.com/opencv/opencv
https://blog.csdn.net/yiyuehuan/article/details/52951574
https://blog.csdn.net/love1055259415/article/details/81095408
https://blog.csdn.net/nullnull2011/article/details/75000071
其中
https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a19d0006415955c79431116e4634f04d5eb5a74/ffmpeg/opencv_ffmpeg.dll 成功
https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a19d0006415955c79431116e4634f04d5eb5a74/ffmpeg/opencv_ffmpeg_64.dll 成功
https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a19d0006415955c79431116e4634f04d5eb5a74/ffmpeg/ffmpeg_version.cmake 未成功,不存在
1.版本明确
一:要搞清楚你的是什么版本的opencv,然后下载对应的opencv_ffmpeg_64.dll,ffmpeg_version.cmake,opencv_ffmpeg.dll
二:要明白上述三个文件和ffmpeg.cmake的关系,在ffmpeg.cmake中的,,是下载地址,可参考 进行下载,但是这里没有找到ffmpeg_version.cmake的相应链接(试了几个都不是)
2.点击“open project”,在vs2017中显示python问题,(失败:vs编译opencv时error MSB3073 targets(133,5))可能是因为我的python安装在了中文目录下,后来去掉python相关的,就可以成功了。
3.从opencv官网上下载opencv压缩包形式的文件时,(开始时显示下载速度特别慢,最后突然下载完成)压缩时提示“不可预料的压缩文件末端”,修复未果,最终选择从师父那儿拷贝压缩包过来,下载不成功应该是网络不好导致
4.vs2017上亲测opencv时,出现已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。错误 ,参考链接 https://www.cnblogs.com/ranson7zop/p/8039676.html (有图文)(调试-》选项 -》常规+符号),下载过程较慢,2018.7.27日可以正常显示图片了,但是因为加载过程时间太慢,加载一次之后,尝试把以上面链接勾选的项取消掉,亲测仍然可以显示图片,虽然会显示一些项无法加载。
5.Qt上测试opencv是否好用时,出现main.obj:-1: error: LNK2019: 无法解析的外部符号
"void __cdecl cv::imshow(class cv::String const &,class cv::debug_build_guard::_InputArray const &)" (?imshow@cv@@YAXAEBVString@1@AEBV_InputArray@debug_build_guard@1@@Z),该符号在函数 main 中被引用 的错误
可能原因:
(1)https://blog.csdn.net/lzm18064126848/article/details/50532204中说可能是函数有定义,没有实现的缘故,这个对于我的不管用。还可以参考https://blog.csdn.net/shenziheng1/article/details/54588457
(2)我的:(debug和release模式切换一下就可以了)
将debug模式改为release模式,这是由引进的库有关的,如
-lopencv_core341 默认的是release模式
-lopencv_core341d 是debug模式
(qt中读取图片的路径最好不要有中文,路径中斜杠方向为“/”和“\\”均可)
debug和release的区别:https://zhidao.baidu.com/question/1113218618582190379.html
6.CMake编译时出现“error in configuration process project files may be invalid”
参考链接:
https://blog.csdn.net/ganwenbo2011/article/details/79096984 源文件路径决定
https://blog.csdn.net/c2a2o2/article/details/77921976
https://blog.csdn.net/sduvec/article/details/50084963
https://www.cnblogs.com/spoorer/p/6970401.html 是由于默认了之前的编译器
7.运行qt出现d:\Program Files (x86)\SogouInput\...错误。
未解决。。。
之前保存的关于opencv的相关有用链接:
win7下配置opencv的Qt开发环境hy:https://blog.csdn.net/qiurisuixiang/article/details/8665278
opencv+vs开发环境配置hy:https://blog.csdn.net/poem_qianmo/article/details/19809337/
由于surf检测和sift检测等要用到xfeature2d等扩展模块,故在最开始的时候也要下载opencv_contrib-3.4.1.tar.gz,编译过程一样
下载:https://github.com/opencv/opencv_contrib/releases
【opencv_contrib-3.4.1压缩包:链接:https://pan.baidu.com/s/1cczu-TMxdl0OzqAfBDOp2Q 提取码:h20k 】
说明参考https://blog.csdn.net/lixuminglxm/article/details/81486528