Win7_64位_QT5.3.2_CMake2.8.12_OpenCV2.3.1
来源:互联网 发布:数据库安全的重要性 编辑:程序博客网 时间:2024/06/16 08:30
在Qt中使用OpenCV我遇到的问题有:
1、CMaka版本太高(第一次使用的是3.1)导致在cmd中执行mingw32-make时在50%时出错,换了现在的Cmake2.8.12就ok了(具体换成哪个版本及是否是版本问题,我是尝试后偶然解决的);
2、QT最好使用自带有MinGW和QtCreator,即在官网下载相应的全套安装包;单个下载也可以,但是可能不同版本之间会出现一些错误;
3、读入图片
pImg=cvLoadImage("C:/2.jpg",CV_LOAD_IMAGE_COLOR);
image=imread("C:/2.jpg");
要是用‘ / ’ 而不是 windows中的‘ \ ' ;
害得我重装了一次
所以步骤具体如下:
一、安装Qt
注意两点:
1、记得勾选MinGW这个选项;
2、是记得安装后把类似于
“C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin”
“C:\Qt\Qt5.2.1\Tools\mingw48_32\bin”
“C:\Qt\Qt5.2.1\Tools\mingw48_32\i686-w64-mingw32\lib”
的三个路径添加到环境变量中(其实不用全部包含,具体哪个不用包含我没有测试)。
其他的过程都一路next就可以了。
二、安装CMake
注意两点:
1、安装路径不能有中文和空格;
2、安装时勾选上:添加CMake到环境变量中给所有用户
三、解压OpenCV
解压后大致如下:不同版本解压的文件目录有差异
四、使用CMake编译OpenCV
打开CMake-gui.exe
源路径Source code:填写opencv解压得到的目标路径
Build the binaries:填写你要把编译后的东西放到的地方(随意找个合适的地方)例如C:\OpenCV
点击configure,选MinGW Makefile,选第一项“use default native compilers”,表示选择默认的编译器
Finish后CMake首先监测一些参数,正常应出现一大片红色,但这个地方可能有error,容易出现的问题是提示各种找不到环境变量,回看“一安装qt”部分内容。
如果顺利则勾上WITH_QT和WITH_OPENGL,看自己的需要了。再次点击configure,可能提示找不到qt5xxx或找不到lib的,这时环境变量是否添加了,如果没添请
填上,请注意:填上后重新启动CMake!。
有个关于QT_QMAKE项,看是否是NOT FOUND的,若果是,在Qt5安装目录下找到qmake.exe把路径复制到NOT FOUND处,然后修改“\”为“/”!直接复制的不符合规格,例如应
该是:“C:/Qt/Qt5.3.2/5.3/mingw482_32/binqmake.exe”
五、编译OpenCV
进入cmd,进入刚才CMake时设置的目标路径,输入mingw32-make命令开始编译
我的超极本电脑编译大概30分钟左右,具体多少看你电脑性能了
编译完成后执行:mingw32-make install
几分钟就ok
六、整合
编译工作已经完成。只需要三个文件夹: 1) 原始的opencv解压文件后的build/include 2) 编译后目标路径中的bin 3) 编译后目标路径中的lib 其他的都可以删去。
把上述说那个文件放到同一个文件夹中,再放到合适的位置例如“C:\qt_opencv_used\(三个文件夹)”;
我测试了一下把OpenCV编译目录中的lib、bin、include三个拷贝出来也能用,但是对比了一下好像还是缺少一些文件
把上述bin添加到环境变量中,添加错误或不添加会出现编写程序查不出任何错误,也不会有任何报错,只要一运行就会“程序异常停止运行”。这样,环境就算配置好了。
七、测试
打开Qt Creator,新建一个空工程,然后添加一个cpp文件
在pro文件中添加如下OpenCV的依赖文件
<span style="color:#800080;">INCLUDEPATH</span>+=C:\qt_opencv_used\<span style="color:#808000;">include</span>\opencv<span style="color:#c0c0c0;"> </span>\<pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">C:\qt_opencv_used\<span style="color:#808000;">include</span>\opencv2<span style="color:#c0c0c0;"> </span>\
C:\qt_opencv_used\include
LIBS+=C:\qt_opencv_used\lib\libopencv_calib3d231.dll.a \
C:\qt_opencv_used\lib\libopencv_contrib231.dll.a \
C:\qt_opencv_used\lib\libopencv_core231.dll.a \
C:\qt_opencv_used\lib\libopencv_features2d231.dll.a\
C:\qt_opencv_used\lib\libopencv_flann231.dll.a\
C:\qt_opencv_used\lib\libopencv_gpu231.dll.a\
C:\qt_opencv_used\lib\libopencv_highgui231.dll.a\
C:\qt_opencv_used\lib\libopencv_imgproc231.dll.a\
C:\qt_opencv_used\lib\libopencv_legacy231.dll.a\
C:\qt_opencv_used\lib\libopencv_ml231.dll.a\
C:\qt_opencv_used\lib\libopencv_objdetect231.dll.a\
C:\qt_opencv_used\lib\libopencv_video231.dll.a
#include "cv.h"#include "cxcore.h"#include "highgui.h"using namespace cv;#if 1int main() { //声明IplImage指针 IplImage* pImg; //载入图片 pImg=cvLoadImage("C:/2.jpg",CV_LOAD_IMAGE_COLOR); //C:\2.jpg 要使用'/' 而不是windows的 '\' if(NULL==pImg) { printf("image can't read!\n"); } // Mat image(pImg); //有这句话,为什么会出错 //创建窗口 cvNamedWindow("Image",CV_WINDOW_AUTOSIZE); // 注释掉这句话,程序尼玛也运行 //显示图像 cvShowImage("Image",pImg); //等待按键 cvWaitKey(0); //销毁窗口 cvDestroyWindow("Image"); //释放图像 cvReleaseImage(&pImg); return 0;}#elseint main(){ Mat image; image=imread("C:/2.jpg"); imshow("li",image); waitKey(); return 0;}#endif
结果:
- Win7_64位_QT5.3.2_CMake2.8.12_OpenCV2.3.1
- win7_64位操作系统_旗舰版
- opencv win7_64位 codeblocks配置
- win7_64位_VS2013_x86_opencv2411配置总结
- Win7_64位使用Mysql Odbc
- .net framework3.5安装失败win7_64位
- win7_64位电脑下锐捷一双击…
- 解决Win7_64位电脑假死机的情况
- WIN7_64位系统安装oracle以及PLSQL方法
- WIN7_64位系统安装oracle以及PLSQL方法(转)
- win7_64位 安装svn服务器端及客户端详细步骤
- 20130922-OrCAD在Win7_64位系统中打印PDF原理图Grid黑点问题解决办法
- Win7_64位系统下,使用VS2010编译stlport库和Boost库
- win7_64位下python3.4安装numpy,scipy提示注册表报错
- 小米Air笔记本以UEFI模式硬盘GPT分区启动Win7_64位系统
- win7_64+vs2010编译boost
- python3.3+lxml+win7_64
- VS2010 WDK7.1.0 Win7_64
- 简单环形队列实现
- 其中的LinearLayout使用了
- UVa 11063 - B2-Sequence
- JAVA程序设计(11)-----面对对象初级设计 麻将 创建麻将牌 然后洗牌 发牌~ 恩 就这样
- 看别人写的一个多文件下载类
- Win7_64位_QT5.3.2_CMake2.8.12_OpenCV2.3.1
- 看编程书籍的一些体会
- Codeforces Round #189 (Div. 2)---A. Magic Numbers
- apache 反向代理
- Cocos2d-JS全貌
- Ubuntu 碎碎念
- 如何在window上把你的项目提交到github
- 一切成功源于积累——20141030 美联储纪要 风险警示
- 面试2014-10-29