准備學習opencv,參考了幾個網頁終於完成。編輯器和opencv版本都選擇最新的版本. 記錄過程如下
1. 下載准備:
1) Opencv源碼, 下載地址: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/
當前選擇windows下的版本 opencv-3.3.1-vc14.exe
2) 編譯器: 使用vs2017, 下載地址: https://www.visualstudio.com/zh-hans/downloads/
3) cmake-gui: 用於根據系統環境,從cmake配置轉換為vs工程配置,
下載地址:http://www.cmake.org/cmake/resources/software.html
4) Opencl配置查看工具: GPU Caps Viewer,下載地址: http://www.geeks3d.com/dl/show/548
5) 其它: 之前安裝了一個 python2.7
2. 開始編譯安裝
1) 安裝vs2017並從網上搜索序列號進行注冊.
2) 安裝opencv源代碼 opencv-3.3.1-vc14.exe到C盤根目錄.
3) 配置cmake-gui, 設置源目錄和生成目錄, 設置編譯器為vs2017, x64版本. 然后執行Configure.
這個過程時間比較長, 中間遇到的問題是下載 文件opencv_ffmpeg331_64.dll和opencv_ffmpeg331.dll很慢.
這個配置過程執行了幾次才下載完畢.
4) 執行完成后接着執行Generate, 等待執行完成, 如下圖所示:
5) 執行第三個按鈕:”Open Project”, 這時候會打開vs2017, 然后編譯整個解決方案. 如下圖所示:
3. 測試
1) 使用vs創建新的 工程 test1, 輸入代碼:
1 #include "stdafx.h" 2 #include<iostream> 3 #include <opencv2/core/core.hpp> 4 #include <opencv2/highgui/highgui.hpp> 5 using namespace cv; 6 7 int main() 8 { 9 Mat img = imread("./pic.jpg");// 讀入一張圖片 10 // 創建一個名為 " wind0"窗口 11 namedWindow("wind0", WINDOW_NORMAL); 12 imshow("wind0", img); // 在窗口中顯示圖片 13 waitKey(60000); // 等待6000 ms后窗口自動關閉 14 cv::destroyAllWindows(); 15 return 0; 16 }
2) 配置Debug工程屬性:
常規:輸出目錄: $(SolutionDir)$(Platform)\$(Configuration)\
調試:工作目錄: $(SolutionDir)$(Platform)\$(Configuration)\
包含目錄: C:\opencv-3.3.1\opencv\build\include
庫目錄: C:\opencv-3.3.1\opencv\build\lib\Debug
鏈接器:輸入:增加: opencv_world331d.lib;
拷貝opencv編譯的dll到Debug目錄: C:\opencv-3.3.1\opencv\build\bin\Debug\
opencv_ffmpeg331_64.dll, opencv_world331d.dll
3) 在Debug目錄增加圖片pic.jpg
4) 編譯運行test1工程, 正常情況下應該可以彈出圖片顯示框.
4. 問題處理
調試時, 每次都會在執行 imshow("wind0", img);時彈出 C++運行異常, 堆棧位置對應opencl的函數clGetPlatformID, 按F5會繼續彈出幾次 C++異常, 繼續F5會彈出配置的圖片.
感覺問題不需要修改代碼, 就想在查看本機opencl的支持, 下載GPU Caps Viewer執行發現, 電腦上的兩個顯卡:
GPU 1: Radeon (TM) HD 7450M和GPU 2: Intel(R) HD Graphics 4000都不支持opencl和CUDA, 如下圖所示:
在CMakeGUI上面發現WITH_OPENCL為選中狀態, 取消選中, 並取消和CUDA及OpenCL相關的配置項, 重新執行配置和 編譯, 使用新產生的opencv_world331d.dll鏈接test1.exe后, 調試和運行都沒有出現異常.
5. 參考
1) 【OpenCV入門教程之一】 安裝OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 開發環境配置
http://blog.csdn.net/poem_qianmo/article/details/19809337
2) 從零開始學習OpenCL開發(一)架構 http://blog.csdn.net/leonwei/article/details/8880012