[教學] Vistual Studio 2008 環境安裝數位影像套件 OpenCV 懶人包
最近學校數位影像處理課程教大家如何透過 OpenCV 函式庫協助你開發軟體
我在 Microsoft Visual Studio 2008 下安裝 OpenCV套件,碰到了不少問題
順便透過這次機會把我遇到的問題、OpenCV安裝教學寫成懶人包做筆記
希望即將在此環境進行程式開發的朋友能夠給些協助,那就跟我一塊來學吧
Visual Studio 申請國際學生即可下載,網址:https://visualstudio.microsoft.com/zh-hant/students/
OpenCV 2.0.0 版本下載點,網址:https://opencv.org/releases/
CMake 2.8.10.2 版本下載點,網址:https://cmake.org/download/
請別詢問我該如何申請,此篇文章以教學為主 …
記得照教學步驟一步一步做,跳著做可能會出錯
有人會問至於為何選擇 "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是安裝執行檔,而板大提供的CMake檔案是壓縮檔並且沒有任何可執行程式
你好~
我在開啟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 略過 ==========
請問成功安裝opencv至2008後
我照著你的步驟可以創建專案
但是之後要如何新建一個opencv的專案?
我新建完run不出來
我想請問一下
我每次跑opencv的code時都只能將其中的一張圖顯示出來
如果換了另一張圖 就會顯示錯誤
請問這該從哪裡改呢? 不論什麼code都一樣只能顯示出那張圖
以face_detection為例
http://ppt.cc/D2zw (無毒請放心謝謝^__^)
跑lena的圖就可以出來
但跑另外一張圖的時候
http://ppt.cc/60qZ
就會出現這種錯誤
每個有關opencv的code都一樣
這個問題困擾我滿久的嗚嗚
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 版本也一樣嗎?? 如果都一樣仍是錯誤情況,可能是系統問題,這部分可能得要研究,因為我裝過數台電腦都沒遇到這情況 …
恩,我在試試看別台電腦,謝謝啦