openCV2學習筆記—1.環境配置
openCV 是開源的計算機視覺代碼庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
實現目標:
> 在windows 10系統上配置一個基于 Qt5.6.0 和 opencv-2.4.12 的開發環境。
工具/原料
> qt-opensource-windows-x86-mingw492-5.6.0.exe 官方下載 百度云盤
> opencv-2.4.12.exe 官方下載 百度云盤
方法/步驟
1.安裝QT:
安裝QT 的方法,請自行百度解決。
2.安裝openCV
- 運行下載好opencv-2.4.12.exe,這里選擇了 G 盤
- 然后解壓縮就完成了安裝。安裝過程如下圖所示:
安裝完成后,在G盤下會有一個opencv的文件夾,打開它,我們可以看到它的結構,包含 build 和 sources兩個文件夾
其中 build 為已經編譯好的庫文件,可以直接使用,但需要使用和編譯庫文件時同樣版本的編譯器。
- sources為還未編譯的源文件,可以根據自已的編譯器,生成對應的庫文件。
- 在opencv文件夾下 新建一個 名為 MinGW 的文件夾, 用來存放編譯文件
3.安裝CMake.
把cmake-3.5.2-win32-x86壓縮到指定文件夾,打開 /cmake-3.5.2-win32-x86/bin文件夾,雙擊cmake-gui.exe 運行CMake。
設置 opencv的源碼路徑、設置 編譯文件存放路徑
- 勾選 Advanced 選項
點擊 configure 按鈕 進行配置
- 點擊 configure 按鈕 進行配置
- CMake配置 結束界面如下圖,勾選生成列表中的WITH_OPENGL和WITH_QT兩項
我的QT安裝在 D:\Qt\文件夾下,請根據各自的實際安裝位置進行修改:配置以下內容
Name | Value |
---|---|
CMAKE_AR | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/ar.exe |
CMAKE_C_COMPILER | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/gcc.exe |
CMAKE_LINKER | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/ld.exe |
CMAKE_MAKE_PROGRAM | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/mingw32-make.exe |
CMAKE_NM | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/nm.exe |
CMAKE_OBJDUMP | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/objcopy.exe |
CMAKE_OBJDUMP | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/objdump.exe |
CMAKE_RANLIB | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/ranlib.exe |
CMAKE_RC_COMPILER | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/windres.exe |
CMAKE_STRIP | D:/Qt/Qt5.6.0/Tools/mingw492_32/bin/strip.exe |
Qt5Concurrent_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5Concurrent |
Qt5Core_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5Core |
Qt5Gui_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5Gui |
Qt5OpenGL_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5OpenGL |
Qt5Test_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5Test |
Qt5Widgets_DIR | D:/Qt/Qt5.6.0/5.6/mingw49_32/lib/cmake/Qt5Widgets |
- 修改完成后,點擊Generate按鈕,生成makefile文件,成功后,底下會提示Generating done
4.使用CMake編譯openCV庫
- 打開cmd,進入剛才設置的目標路徑(G:\OpenCV),輸入mingw32-make命令開始編譯, 編譯比較費時,最少要40分鐘。
- 執行mingw32-make install,此過程大約需要1到2分鐘
安裝完成后,我們打開 MinGW 文件夾,可以看到 多了一個 install 文件夾,且這個文件夾不為空。
我們把這個文件夾 復制到openCV 的文件夾下[任意文件夾下],這里復制到了G:\opencv 目錄下。
install 文件夾就是我們編譯好的類庫文件夾,在以后的學習中 會經常用到。
5.編寫第一個openCV程序
運行安裝好的 Qt Creator, 新建一個項目,選擇Application -> Qt Console Application , 點擊 Choose 按鈕。
定義項目名稱[名字可以隨便取] -> 選擇項目路徑,-> 點擊 下一步按鈕。
接著點擊 “下一步” 按鈕
點擊 “完成” 按鈕
Qt 生成的代碼創建了一個QCoreApplication 對象,并調用它的 exec() 方法。這段代碼 暫時不需要,我們只做一個簡單的打開并顯示圖像的例子,使用剛才編譯好的 openCV 的庫文件。
默認生成的代碼
把生成的代碼替換成下圖 所示的代碼
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
int main(int argc, char *argv[])
{
//read an image
cv::Mat image = cv::imread("F:/c++/QT/OpenCVProjects/img.jpg");
//create image windows named "My Imagr"
cv::namedWindow("My Image");
//show the image on window
cv::imshow("My Image",image);
//wait key for 10000 ms
cv::waitKey(10000);
return 1;
}
為了能夠編譯程序,需要指定OpenCV庫文件 和 頭文件的路徑。在Qt中,這些信息包含在后綴為 .pro 的項目文件中,這是一個描述項目參數的文件。我們在這里編輯這個文件即可。
添加用于搜索頭文件的文件夾,和鏈接時候的庫文件列表,文件夾主目錄為,剛才編譯產生的 install 文件夾,剛才 我把復制到了G:\opencv 目錄下。
INCLUDEPATH += G:\opencv\install\include\ G:\opencv\install\include\opencv\ G:\opencv\install\include\opencv2\
LIBS += G:\opencv\install\x86\mingw\lib\libopencv_core2412.dll.a\ G:\opencv\install\x86\mingw\lib\libopencv_core2412.dll.a\ G:\opencv\install\x86\mingw\lib\libopencv_highgui2412.dll.a\ G:\opencv\install\x86\mingw\lib\libopencv_imgproc2412.dll.a\ G:\opencv\install\x86\mingw\lib\libopencv_features2d2412.dll.a\ G:\opencv\install\x86\mingw\lib\libopencv_calib3d2412.dll.a
保存后,運行 程序,發現 出現了以下錯誤,
為什么會出現這種錯誤呢!我們看會代碼,發現代碼中用到了一個“img.jpg”的圖片,這個我們好像并沒有,只好,找一張jpg格式的圖片放到一個目錄下,我的圖片路徑為:F:/c++/QT/OpenCVProjects/,并改名為“img.jpg”
再次運行,我們發現已經可以了
我們的openCV 環境已經配好,歡迎大家糾錯!