雖然2010 跟 2012 的相容性方面 蠻麻煩的有BUG但2012起碼界面看來舒暢許多
下面詳細記下安裝 "VC++ 2012 && opencv 2.4.6" 的詳細安裝過程 ::
下載點:
1.Microsoft Visual Studio Express 2012 for Windows Desktophttp://www.microsoft.com/visualstudio/cht/products/visual-studio-express-for-windows-desktop
2. OpenCV2.4.6
http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.6/OpenCV-2.4.6.0.exe/download
安裝步驟:
-----------------------------------------------------------------SETP 1:
解壓縮OpenCV2.4.6 到路徑 "C:\OpenCV246"
-----------------------------------------------------------------
SETP 2:
點選(開始)->(對電腦按右鍵)->(內容)->(變更設定)->(進階)->(環境變數)->(使用者變數)->(新增)
變數名稱:
path
變數值:
C:\OpenCV246\build;C:\OpenCV246\build\x86\vc10\bin;
-----------------------------------------------------------------
SETP 3:
在 Visual Studio 2012 中建立 VC++ Win32 主控台應用程式
應用程式設定->其它選項->空專案(勾選)->完成
-----------------------------------------------------------------
SETP 4:點選 專案->屬性->VC++ 目錄 設定
Include 目錄:
C:\OpenCV246\build\include;C:\OpenCV246\build\include\opencv;
程式庫目錄:
C:\OpenCV246\build\x86\vc10\lib;
-----------------------------------------------------------------
SETP 5:點選 專案->屬性->連結器->輸入 設定
其他相依性:
opencv_core246d.lib
opencv_calib3d246d.lib
opencv_contrib246d.lib
opencv_features2d246d.lib
opencv_highgui246d.lib
opencv_imgproc246d.lib
-----------------------------------------------------------------
SETP 6:重新開機
範例程式碼:
#include <stdio.h>
#include <cv.h>#include <highgui.h>
#include <iostream>
using namespace std ;
int main( int argc, char **argv )
{
IplImage *img01;
CvSize imgsize01 = cvSize(300,300); // 給圖像SIZE
img01 = cvCreateImage(imgsize01,IPL_DEPTH_8U,3);//創造img01
int Height=cvGetDimSize(img01,0);//讀取矩陣高度
int Width=cvGetDimSize(img01,1);//讀取矩陣寬度
//這裡先給img01全白
for(int y = 0 ; y < Height ; y++)
for(int x = 0 ; x < Width ; x++ )
cvSet2D(img01,y,x,CV_RGB(255,255,255));//特別注意 給值是 (y,x)
for(int y = 0 ;y < Width ; y++)
cvSet2D(img01,y,10,CV_RGB(255,0,0));//特別注意 給值是 (y,x)
for(int x = 0 ;x < Width ; x++)
cvSet2D(img01,10,x,CV_RGB(0,255,0));//特別注意 給值是 (y,x)
cout<<"(10,100)R ="<<cvGet2D(img01, 100 , 10 ).val[2]<<endl;//試著讀取某個點的RGB值
cout<<"(10,100)G ="<<cvGet2D(img01, 100 , 10 ).val[1]<<endl;//特別注意是cvGet2D(img,y,x)
cout<<"(10,100)B ="<<cvGet2D(img01, 100 , 10 ).val[0]<<endl;//所以在輸入XY時 X 和 Y 要對調
cvNamedWindow("img01",CV_WINDOW_AUTOSIZE);
cvShowImage("img01", img01);
//輸出img01
cvWaitKey(0);
cvReleaseImage(&img01);
cvDestroyAllWindows();
return 0;
}
作者已經移除這則留言。
回覆刪除