記錄opencv編譯過程


    准備學習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

版本 cmake-3.10.0.zip

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM