[教學] Vistual Studio 2008 環境安裝數位影像套件 OpenCV 懶人包

最近學校數位影像處理課程教大家如何透過 OpenCV 函式庫協助你開發軟體

我在 Microsoft Visual Studio 2008 下安裝 OpenCV套件,碰到了不少問題

順便透過這次機會把我遇到的問題、OpenCV安裝教學寫成懶人包做筆記

希望即將在此環境進行程式開發的朋友能夠給些協助,那就跟我一塊來學吧



Visual Studio 申請國際學生即可下載,網址:http://goo.gl/TQWF0

OpenCV 2.0.0 版本下載點,網址:http://goo.gl/wvehg

CMake 2.8.10.2 版本下載點,網址:http://goo.gl/1o5Gf

請別詢問我該如何申請,此篇文章以教學為主 …

記得照教學步驟一步一步做,跳著做可能會出錯

有人會問至於為何選擇 "VS 2008"不選擇 "VS 2010"??

主要是因為裝過"VS 2010"遇過太多無法預期錯誤

還是"VS 2008"穩定性比較高,所以推薦"VS 2008"版




 

首先先安裝 OpenCV 軟體,一直按下一步,就安裝完成拉 ….

 

 

CMake 2.8 也是一樣,我就不多卡圖了!! 下一步到底準沒錯

 


 

無論你是灌XP還是Win7,先到Program File 內找到 CMake2.8 資料夾

看到 cmake-gui點下去,接著彈跳出第二張圖片視窗,照圖片欄位填入

"Where is the source code"選擇 "OpenCV 2.0" 套件安裝目錄所在位置

"Where to build the binaries:" 選擇"OpenCV 2.0"新建一個vc2008的資料夾

設定好路徑後,接著按下游標指向的 "Configure" 按鈕就可以拉 …

 

 

然後會彈跳出上面視窗畫面,選擇 Visual Studio 9 2008 即可

 




 

接著程式就開始RUN,完成後就跳出紅通通的畫面

先按Configure,再按Generate,出現 Done 就OK拉 ~~

 


 

關閉程式,到C槽底下 OpenCV2.0資料夾底下的 vc2008

找到OpenCV檔案,點下去開啟選 Visual C++開發設定

然後再點 "啟動 Visual Studio" 就可以拉!! 完成一半了 呼 …

 

 

開啟OpenCV.sln檔案後看到左手方有方案總管,Debug模式下在專案按右鍵

選擇第二個,重置方案,程式就自動開始RUN,大概需要1~2分鐘左右

 

 

看到出現成功畫面,表示完成拉

 

 

接著同樣在Debug模式下,找到INSTALL專案,按右鍵點選"重置"

 

 

也是需要花一點時間等待,以上為完成畫面

 

 

然後切換到"Release"模式,在OpenCV最上層專案同樣按右鍵點"重置方案"

 

 

以上是 Rebuild 成功畫面

 

 

相同步驟,再 Release 模式下,在 INSTALL 專案點選重置

 

 

步驟一直再重複,但可別弄錯啊 …

 

 

安裝完成後去設定系統環境變數,如上圖所示,

記得新增變數欄位Path,路徑 –> C:OpenCV2.0bin

 

 

接著再開啟 Visual Studio 點選 – 工具 – 選項

 


 

在側邊點專案和方案 – VC++目錄,在WIN32平台下顯示目錄選 Include 檔案

加入 "C:OpenCV2.0vc2008includeopencv" 路徑,把它移到最下面,最後載入

然後再切換到程式庫檔,增加" C:OpenCV2.0vc2008lib"路徑,一樣移到最後

完成後按確定時會詢問是否要儲存這設定,按確定就好了,往下操作下去 …

 

 

準備要來寫個 OpenCV小程式囉,在 Visual Studio 開啟新專案

 



 

專案類型選 Visual C++ – 腳本 – Win32主控台應用程式

記得輸入專案名稱,以及檔案存放位置,完成按確定

然後按下一步,記得選空專案,按下完成即開啟新專案

 

 

接著在方案總管內的專案找到原始程式碼 – 加入 – 新增項目

 

 

新增一個C++檔 (.cpp) 範本,輸入完名稱按加入

 

 

然後再test1方案內按右鍵 – 點選屬性

 


 

在組泰屬性-連結器-輸入-DEBUG模式下-其他相依性填入以上lib

DEBUG模式 – cxcore200d.lib cv200d.lib highgui200d.lib

Release模式 – cxcore200.lib cv200.lib highgui200.lib

 

 

完成設定後會再彈出屬性變更確認,按"是"就好了

 

 

/*******************************************************

* Function: OpenCV2.0 test

* File name: OpenCVTest.cpp

* Author: Chun-Ju Wu

* Date Created: 2009/11/26

* Last modified: 2009/11/26

*******************************************************/

#include "highgui.h"

int main()

{

    IplImage *InImage;

    InImage = cvLoadImage("lena.bmp",-1);

    CvSize Size1 = cvGetSize(InImage);

    //建立視窗(視窗名稱,參數)

    cvNamedWindow("InImage",1);

    //顯示影像(視窗名稱,影像檔案)

    cvShowImage("InImage",InImage);

    cvWaitKey(0);   //按下任意按鍵可將圖片關閉

    return 0;

}

 

以上是網路找到的OpenCV範例,大家可以參考看看

 


 

此範例已開啟lena圖片為範本,記得在專案目錄放置lena圖片

以上兩張圖片分別為 lena JPG & BMP 檔案,歡迎大家取用

 

 

以下為常見問題解決方法:

 



 

如果你開啟 Visual Studio 彈出以上視窗,表示套件載入失敗

或著是出現應用程式不支援專案類型 (.vcproj)、GUID…等錯誤

有可能是因為部分影像處理、轉檔程式跟 Visual Studio 有相衝

建議不要再使用 Visual Studio 時執行,我也是找了好久時間

才發現原來它和我使用螢幕畫面擷取軟體 HyperSnap-DX 相衝

後來換 PicPick 軟體擷取畫面,似乎就沒有這問題了,好加在

 

 

解決方法就是在開始 – 執行 CMD 命令字元下打指令

 

"Folder PathCommon7IDEdevenv.exe" /setup /resetskippkgs

以上是我輸入的指令,完成後不會出現任何畫面,但錯誤會有提示

基本上執行「devenv /resetskippkgs」就可以解決,但要注意路徑位置

或參考微軟網站,網址:http://support.microsoft.com/kb/823245/zh-tw

也歡迎大家有任何問題,可以提出來一塊討論,我也花不少時間在摸索

臉書留言

一般留言

  • 路人

    不好意思, 我想請問一下如何安裝cmake? 我下載解壓縮完就沒有頭緒了…

    阿福:不懂你的問題在哪?? 我有擷取圖片一步一步教啦 ….

  • 路人

    我cmake壓縮檔下載解壓縮完看不到任何類似安裝檔的東西
    不過我已經到官網去下載cmake的exe檔(雖然是cmake2.8.7的)並安裝成功了!

    不過就在cmake-gui那邊設定路徑完並configurate時出現了下面的錯誤訊息:

    CMake Error: your C compiler: “bcc32″ was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
    CMake Error: your CXX compiler: “bcc32″ was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.

    請問是甚麼問題呢? 謝謝!

    阿福:看來你的路徑設定有問題,你可以重新安裝這一版看看
    cmake-2.8.2:http://www.mediafire.com/?bj3qclggjmuvs1m
    或參考這一篇教學:http://blog.yam.com/dainn/article/25692284
    我想最大問題還是出在你路徑設定上面有問題,檢查看看吧

  • 路人

    樓上想問的大概是

    你教學中所用的CMake是安裝執行檔,而板大提供的CMake檔案是壓縮檔並且沒有任何可執行程式

    阿福:已上傳我所使用的版本,你使用看看
    網址:http://www.mediafire.com/?fcr1x7d17anc357

  • fly

    你好~
    我在開啟OpenCV.sln檔案後看到左手方有方案總管,Debug模式下在專案按右鍵
    選擇第二個,重置方案後,出現24個錯誤
    大致如下:(是因為甚麼原因啊?)

    Read more: http://sofun.tw/opencv/#ixzz1uu3fRZcq

    22>Building Custom Rule C:/OpenCV2.0/apps/haartraining/CMakeLists.txt
    22>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    21>Building Custom Rule C:/OpenCV2.0/tests/cv/CMakeLists.txt
    22>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008appshaartraininghaartraining.dirDebugBuildLog.htm"
    22>haartraining – 1 個錯誤,0 個警告
    21>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    21>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008testscvcvtest.dirDebugBuildLog.htm"
    21>cvtest – 1 個錯誤,0 個警告
    23>—— 已開始全部重建: 專案: mltest, 組態: Debug Win32 ——
    23>正在刪除專案 ‘mltest’ 和組態 ‘Debug|Win32’ 的中繼檔和輸出檔。
    23>Building Custom Rule C:/OpenCV2.0/tests/ml/CMakeLists.txt
    23>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    23>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008testsmlmltest.dirDebugBuildLog.htm"
    23>mltest – 1 個錯誤,0 個警告
    24>—— 已開始全部重建: 專案: opencv_ffmpeg, 組態: Debug Win32 ——
    24>正在刪除專案 ‘opencv_ffmpeg’ 和組態 ‘Debug|Win32’ 的中繼檔和輸出檔。
    24>Building Custom Rule C:/OpenCV2.0/interfaces/ffopencv/CMakeLists.txt
    24>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    24>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008interfacesffopencvopencv_ffmpeg.dirDebugBuildLog.htm"
    24>opencv_ffmpeg – 1 個錯誤,0 個警告
    25>—— 已開始全部重建: 專案: createsamples, 組態: Debug Win32 ——
    25>正在刪除專案 ‘createsamples’ 和組態 ‘Debug|Win32’ 的中繼檔和輸出檔。
    25>Building Custom Rule C:/OpenCV2.0/apps/haartraining/CMakeLists.txt
    25>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    25>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008appshaartrainingcreatesamples.dirDebugBuildLog.htm"
    25>createsamples – 1 個錯誤,0 個警告
    26>—— 已開始全部重建: 專案: ALL_BUILD, 組態: Debug Win32 ——
    26>正在刪除專案 ‘ALL_BUILD’ 和組態 ‘Debug|Win32’ 的中繼檔和輸出檔。
    26>Building Custom Rule C:/OpenCV2.0/CMakeLists.txt
    26>專案 : error PRJ0003 : 繁衍 (Spawn) ‘cmd.exe’ 發生錯誤。
    26>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008ALL_BUILD.dirDebugBuildLog.htm"
    26>ALL_BUILD – 1 個錯誤,0 個警告
    27>—— 已略過全部重建: 專案: INSTALL, 組態: Debug Win32 ——
    27>未針對此方案組態選取要建置的專案
    ========== 全部重建: 0 成功、24 失敗、 3 略過 ==========

    阿福:你先嘗試看看這個解決方法吧:
    在「工具」->「選項」->「VC++目錄」的「顯示目錄」->「可執行檔」裡,加上C:WINDOWSsystem32這個目錄,或許這個問題就不再發生了 XDD

  • 路人

    請問成功安裝opencv至2008後
    我照著你的步驟可以創建專案
    但是之後要如何新建一個opencv的專案?
    我新建完run不出來

    阿福:一般的專案就可以了!!
    RUN不出來有出現錯誤之類的??

  • 安安

    我想請問一下
    我每次跑opencv的code時都只能將其中的一張圖顯示出來
    如果換了另一張圖 就會顯示錯誤
    請問這該從哪裡改呢? 不論什麼code都一樣只能顯示出那張圖

    以face_detection為例
    http://ppt.cc/D2zw (無毒請放心謝謝^__^)
    跑lena的圖就可以出來
    但跑另外一張圖的時候

    http://ppt.cc/60qZ

    就會出現這種錯誤

    每個有關opencv的code都一樣
    這個問題困擾我滿久的嗚嗚

    阿福:其實這部分我不太清楚,但看了一下你的環境
    應該是Visual Studio 2010版本,那一版裝OpenCV問題很多
    你要不要嘗試2008版本,或許就不會有這問題產生了

  • tinybird

    26>—— 已開始全部重建: 專案: ALL_BUILD, 組態: Debug Win32 ——
    26>正在刪除專案 ‘ALL_BUILD’ 和組態 ‘Debug|Win32’ 的中繼檔和輸出檔。
    26>Building Custom Rule C:/OpenCV2.0/CMakeLists.txt
    26>CMake does not need to re-run because C:OpenCV2.0vc2008CMakeFilesgenerate.stamp is up-to-date.
    26>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008ALL_BUILD.dirDebugBuildLog.htm"
    26>ALL_BUILD – 0 個錯誤,0 個警告
    27>—— 已略過全部重建: 專案: INSTALL, 組態: Debug Win32 ——
    27>未針對此方案組態選取要建置的專案
    ========== 全部重建: 23 成功、1 失敗、 3 略過 ==========

    請問我出現這個錯誤怎麼排除呢?
    我已加上C:WINDOWSsystem32到目錄

    謝謝!

    阿福:不懂!! 以上是編譯過程
    但沒看到你失敗的訊息貼上來 …

  • 阿發

    版主你好:
    沒有惡意,單純提醒你CMAKE的安裝檔連結是錯的,是官網source distribution 的那個檔案唷,不是官網windows 的installer。 最後很謝謝你的圖片流程,辛苦了!

    阿福:感謝你的提醒語告知,之前都沒有注意到
    現在下載連結也已經更新了!!! ^^

  • 阿憲

    15> 正在建立程式庫 ….libReleaseopencv_ffmpeg200.lib 和物件 ….libReleaseopencv_ffmpeg200.exp

    15>….binReleaseopencv_ffmpeg200.dll : fatal error LNK1169: 找到有一或多個已定義的符號

    15>已將建置記錄儲存於 “file://c:OpenCV2.0vc2008interfacesffopencvopencv_ffmpeg.dirReleaseBuildLog.htm"

    15>opencv_ffmpeg – 2 個錯誤,1 個警告

    請問我出現這個錯誤怎麼排除呢?
    我已加上C:WINDOWSsystem32到目錄

    • 安裝版本.環境有跟教學文一樣嗎?? 因為若不同可能安裝過程會有錯誤。

      • 阿憲

        我用的是visual studio 2008,環境是win7 32位元的,我按照這個步驟 “接著同樣在Debug模式下,找到INSTALL專案,按右鍵點選"重置",最後會就出現=====全部重建: 22 成功、2 失敗、 3 略過====。

      • OpenCV 版本也一樣嗎?? 如果都一樣仍是錯誤情況,可能是系統問題,這部分可能得要研究,因為我裝過數台電腦都沒遇到這情況 …

      • 阿憲

        恩,我在試試看別台電腦,謝謝啦