Qt5.0.1 MinGW 4.7 配置opencv2.4.8

        早先用的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-make install.

若提示找不到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;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章