OpenCV2.4.5 + QT4.8.4 + VS2010 環境搭建
忙乎了好幾天終於把環境搭建成功,中間經歷了好多糾結的情況,原因都是因為網上的資料都是比較老的版本搭建平臺的資料,新版本出來,某些設定需要改一下,所以就耽誤了不少時間!今天寫個部落格把這個過程記錄下來,自己以後可以參考,同時也給大家學習提供參考(環境與作業系統無關,Win7和Xp配置相同)。
一、準備工作做好!下載軟體和OpenCV庫
OpenCV庫,目前最新版本2.4.5。
VS2010下載,直接安裝。
Qt:網址:http://qt-project.org/downloads
二、OpenCV庫的配置
1、解壓OpenCV庫到D盤,OpenCV會自己建個資料夾opencv。如果想解壓到自己設定的資料夾也行。
2、配置環境變數:
xp:我的電腦-》屬性-》高階-》環境變數
新建變數(使用者,系統任選一個),變數名:opencv,變數值:d:\opencv
雙擊Path,(同上),在後面新增
;D:\opencv\build\x86\vc10\bin
三、新建一個工程,邊配置OpenCV與工程的依賴,邊實現OpenCV的第一個程式
1、開啟VS2010,檔案-》新建-》專案-》Visual C++-》win32 Console Application-》
Name:MyFirstOpenCVConsoleApp
2、確定-》下一步-》附加選項,空專案-》完成
3、View -》 Project Manager
4、在Property Manager視窗中,右鍵Debug|Win32,選擇Add New Project Property Sheet,
5、選擇Property Sheet(.props),Name:OpenCVProjectD,Location:選擇工程主目錄,這樣以後再用OpenCV,配置可以直接新增OpenCVProjectD.props。
6、選擇Add,雙擊OpenCVProjectD,選擇VC++ Directories,配置Include Directories
新增:
D:\opencv\bulid\include\opencv
D:\opencv\bulid\include\opencv2
D:\opencv\build\include
7、設定Library Directories,新增opencv library目錄進去:
D:\opencv\build\x86\vc10\lib
8、點選OK,選擇Linker-》Input
在裡面新增lib(lib格式是opencv_xx+版本號+(d是debug庫,沒有的是release庫)+.lib):
opencv_calib3d245d.lib
opencv_contrib245d.lib
opencv_core245d.lib
opencv_features2d245d.lib
opencv_flann245d.lib
opencv_gpu245d.lib
opencv_highgui245d.lib
opencv_imgproc245d.lib
opencv_legacy245d.lib
opencv_ml245d.lib
opencv_objdetect245d.lib
opencv_ts245d.lib
opencv_video245d.lib
9、點選OK-》確定,Debug|Win32配置成功,如果你是用Release除錯,Release|Win32也要配置,和Debug|Win32配置基本相同(4,5,6,7,8五步),
但是配置Release|Win32和Debug|Win32也有幾個小地方不同:
5中Name:OpenCVProjectD -》OpenCVProjectR
8中新增的庫,全部沒有d,即:
opencv_calib3d245.lib
opencv_contrib245.lib
opencv_core245.lib
opencv_features2d245.lib
opencv_flann245.lib
opencv_gpu245.lib
opencv_highgui245.lib
opencv_imgproc245.lib
opencv_legacy245.lib
opencv_ml245.lib
opencv_objdetect245.lib
opencv_ts245.lib
opencv_video245.lib
10、點選左下角的Solution Exploer,右鍵Resource Files-》Add-》New Item-》C++ Files-》Name:main.cpp-》Add
11、在main.cpp中輸入:
#include <opencv2/core/core.hpp> #include <opencv2\highgui\highgui.hpp> cv::Mat function(); int main(){ cv::Mat image = cv::imread("img.jpg"); if(!image.data){ return 1; } cv::namedWindow("Input Image"); cv::imshow("Input Image",image); cv::Mat result; cv::flip(image,result,1); cv::namedWindow("Output Image"); cv::imshow("Output Image",result); cv::imwrite("output.bmp",result); cv::Mat gray = function(); cv::namedWindow("Display Image"); cv::imshow("Display Image",gray); cv::waitKey(0); return 1; } cv::Mat function(){ cv::Mat ima(240,320,CV_8U,cv::Scalar(100)); return ima; }
12、在工程中新增一張img.jpg檔案。
13、大功告成,點選執行,或者F5,等系統載入庫檔案完成,程式執行出兩張圖片,就說明OpenCV配置成功了。
四、安裝和編譯Qt4.8.4,
1、安裝Qt4.8.4,具體目錄自己訂,但是目錄不能有空格,我選的是直接在d:\Qt檔案,然後一路next就行,
2、主要問題是Qt4.8.4的編譯,Qt4.8.4的庫要經過VS2010重新編譯,編譯之前要修改幾個錯誤:
1)刪除原始碼包中bin目錄下的syncqt和syncqt.bat檔案。
2)修改\mkspecs\win32-msvc2010下的qmake.conf檔案,將其中QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-,最後的-去掉。
3)修改D:\Qt\4.8.4\src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,改為
return WEB_UI_STRING("Look Up <selection>", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
3、編譯
1)開始-》程式-》Microsoft Visual Studio 2010-》Visual Studio Tools-》Visual Studio命令提示(2010)。
2)在命令中輸入如下命令:
3)輸入o(選擇Open Source模式),輸入Y(同意license),回車,執行。
4)系統配置完成後,會有提示,輸入nmake,然後回車,接著就是漫長的等待了。
4、安裝Qt外掛,一路Next到結束。
五、新建一個Qt程式,檢驗自己的Qt安裝是否成功。
1、新建Qt工程:開啟VS2010-》檔案-》New-》工程-》Qt4 Projects-》Qt Application-》Name:MyQt-》Ok。
2、直接finish。
3、覆蓋main.cpp程式如下:
#include <QtGui/QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel *label=new QLabel("<h2><i>Hello </i>""<font color=red>world!</font></h2>");//create a label with the content "Hello world!"
label->show();
return a.exec();
}
4、執行程式結果如下:
參考資料:
http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html
http://blog.csdn.net/sangni007/article/details/8425119