2011-12-25

OpenCV + Dev-C++

在尋找影像辨識軟體時看到了OpenCV這個由Intel所主導開發的工具程式庫,目前的版本已出到2.3.1,在網路上也可以看到不少安裝的文章,依循著前人的脚步在花了一點時間安裝後並使用網路上找到的sample進行測試,結果幾乎都無法正常完成編譯的工作,只好硬著頭皮去找問題。
原來OpenCV在2.2版開始與1.x版開始差異變大,除了lib和include的位置有差異之外也再分成opencv和opencv2,還有像cvHaarDetectObjects這個function,原先只需要7個參數,從2.2版開始也變成需要8個參數,就算在小改後我還是有出現無法link的問題發生,為了可以快速上手決定選用與1.x版差異較小的2.1版進行安裝,後來證明這個決定是正確的。

安裝環境:
  • Windows XP with SP3
  • OpenCV2.1 (OpenCV-2.1.0-win32-vs2008.exe)
    -> 安裝路徑 C:\OpenCV2.1
  • Dev-C++ Version 4.9.9.2 (5.0Beta)
    -> 安裝路徑 C:\Dev-Cpp
在安裝OpenCV2.1版及Dev-C++後,設定步驟如下:
  1. 執行Dev-C++
  2. 點選 工具 -> 編譯器選項
  3. 編譯器 -> 勾選 在連結器命令列中加入以下的命令 -> 在下面方框中填入以下字串
    -lcv210 -lcvaux210 -lcxcore210 -lcxts210 -lhighgui210 -lml210 -lopencv_ffmpeg210
  4. 目錄 -> 二進位檔 -> 新增路徑  C:\OpenCV2.1\bin
  5. 目錄 -> 函式庫 -> 新增路徑  C:\OpenCV2.1\lib
  6. 目錄 -> C引入檔(Includes) ->  新增路徑  C:\OpenCV2.1\include\opencv
  7. 目錄 -> C++引入檔(Includes) -> 新增路徑  C:\OpenCV2.1\include\opencv
  8. 完成
測試結果:

  1. 測試程式可參考 http://yester-place.blogspot.com/2008/06/opencv2.html


  2. #include "highgui.h"
    int main()
    
    {
        IplImage *img = cvLoadImage("d:\\1.jpg", CV_LOAD_IMAGE_ANYCOLOR);
        cvNamedWindow("Image:", CV_WINDOW_AUTOSIZE);
        cvShowImage("Image:", img);
        cvWaitKey(0);
        cvDestroyWindow("Image:");
        cvReleaseImage(&img); 
    }