Qt5.0.1 MinGW 4.7 配置opencv2.4.8

来源:互联网 发布:淘宝商城分销平台 编辑:程序博客网 时间:2024/04/26 08:02

        早先用的opencv的版本是2.3.1的,后来需要用到高版本的一些函数,无奈只能下载一个2.4.8的版本,发现官方的2.4.8版本是没有MingW编译好的库的,如此折腾了几次,也没弄好,只能使用原来的老版本,但是天不遂人愿,最近需要用到Qt5,原来的qt 4.8下编译的opencv也不能用了,只能痛下决心自己编译源码了。

      事实上第一次编译源码的问题确实很多,首先说下平台,win7 32bit,使用的是QT5.0.1+QtCreator2.6.2,貌似大家用这个版本的人很少,我也不知道从哪里下了这个版本就用了,opencv是2.4.8,源码官网上很多。

    需要下载的东西:

   1:CMake 2.8.7

   2:Qt5.0.1-MinGW4.7

   3:opencv2.4.8

然后开始编译吧:

1:打开cmake,选择编译的源文件路径和构建路径:


2:点击configure,

          选择 MinGW Makefiles 和 Specify native compilers, 点击next,然后对应选择QT5下的MINGW4.7中的bin中的C和C++的编译器,分别是gcc.exe和g++.exe 

出现一些红色的没有值的部分,可以忽略,记得勾选WITH_OPENGL,网上很多说要勾选WITH_QT,我觉得其实没必要,如果勾选WITH_QT,打开摄像头会初始化窗口会慢很多,虽然多了一些小功能,但是在实际中如果开发QT GUI界面的话,在函数中随便imshow的话,是不会显示图像的,所以,没必要勾选WITH_QT。再次点击configure,红色消失.

点击generate.

4:在所有程序中的QT下找到Qt 5.0.1 for Desktop (MinGW 4.7)


5:点击之后进入命令行,并进入你开始选择的构建目录,输入mingw32-make,进行编译,结束后输入mingw32-makeinstall.

若提示找不到mingw32-make,请将QT5文件夹下的bin目录加到系统path中,关闭命令行,重新打开输入。

6:编译好之后,我们发现构建目录下多了很多东西,找到install文件夹,我的里面只有X64一个文件夹,很奇怪,不过照样可以用,把里面的bin和lib文件夹复制出来,和include文件夹放在一起,这三个文件夹就是我们以后要用的,可以把这三个放到一个没有中文路径和空格的地方,为了以后好移植, 我们新建一个环境变量OPENCV248_MINGW
,值是这三个文件夹所在目录的路径。然后bin的路径加到系统path中,并复制bin中dll到C:windows\system32下。

7:使用:

在项目文件.pro中加入

INCLUDEPATH +=$(OPENCV248_MINGW)\include 
               
LIBS +=$(OPENCV248_MINGW)\lib\libopencv_calib3d248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_contrib248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_core248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_features2d248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_flann248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_gpu248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_highgui248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_imgproc248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_legacy248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_ml248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_nonfree248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_objdetect248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_ocl248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_photo248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_stitching248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_superres248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_ts248.a \
$(OPENCV248_MINGW)\lib\libopencv_video248.dll.a \
$(OPENCV248_MINGW)\lib\libopencv_videostab248.dll.a
即可以使用。

记得使用using namespace cv;


0 0
原创粉丝点击