【OpenCV入門指南】第一篇 安裝OpenCV

http://blog.csdn.net/morewindows/article/details/8225783/php

 

【OpenCV第一篇】安裝OpenCV

本篇主要介紹如何下載OpenCV安裝程序,如何在VS2008下安裝配置OpenCV,文章最後還介紹了一個使用OpenCV的簡單小例子。windows

《OpenCV入門指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764ide

一.OpenCV的下載

能夠到http://www.opencv.org.cn/index.php/Download,而後選一個較新版本下載。我下的是V2.3.1版本,下載地址是:函數

http://www.opencv.org.cn/download/OpenCV-2.3.1-win-superpack.exe工具

下載完成後,雙擊運行exe,選擇輸出目錄,我選擇的是D:\opencv。而後解壓縮就完成了安裝。安裝過程以下圖所示:ui

 

二.在個人電腦中配置OpenCV

在「個人電腦」右擊彈出「系統屬性」對話框,選擇「高級」再點擊「環境變量」,而後再編輯path,在「編輯用戶變量」對話框的變量值輸入如下三條,注意用「;」來分開。spa

D:\opencv\opencv\build\x86\vc9\bin;.net

D:\opencv\opencv\build\x86\mingw\bin;3d

D:\opencv\opencv\build\common\tbb\ia32\vc9;blog

 

三.在VS2008中加入OpenCV

在VS2008中點擊「工具」,再點擊「選項」,而後選擇「項目和解決方案」,手動加入庫文件,引用文件和包含文件便可完成OpenCV在VS2008的導入。 

 

四.第一個OpenCV程序

下面是最簡單的OpenCV使用例子,功能也很簡單——加載圖像文件並顯示出來。代碼以下:

[cpp]  view plain copy
 
  1. //顯示圖像文件  
  2. #include <opencv2/opencv.hpp>  
  3. using namespace std;  
  4.   
  5. #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")  
  6.   
  7. int main()  
  8. {  
  9.     const char *pstrImageName = "衝浪大師賽001.jpg";  
  10.     const char *pstrWindowsTitle = "OpenCV第一個程序(http://blog.csdn.net/MoreWindows)";  
  11.   
  12.     //從文件中讀取圖像  
  13.     IplImage *pImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);  
  14.   
  15.     //建立窗口  
  16.     cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);  
  17.   
  18.     //在指定窗口中顯示圖像  
  19.     cvShowImage(pstrWindowsTitle, pImage);  
  20.   
  21.     //等待按鍵事件  
  22.     cvWaitKey();  
  23.   
  24.     cvDestroyWindow(pstrWindowsTitle);  
  25.     cvReleaseImage(&pImage);  
  26.     return 0;  
  27. }  

對代碼中的主要函數進行下講解:

 

1.建立窗口 cvNamedWindow

函數名稱:cvNamedWindow 
函數功能:建立窗口 
函數原型:
int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );

參數說明:
第一個參數表示窗口的名字,它被用來區分不一樣的窗口,並被顯示爲窗口標題。被建立的窗口能夠經過它們的名字被引用。 
第二個參數表示窗口屬性標誌。目前惟一支持的標誌是CV_WINDOW_AUTOSIZE。當這個標誌被設置後,用戶不能手動改變窗口大小,窗口大小會自動調整以適合被顯示圖像。 
函數cvNamedWindow建立一個能夠放置圖像和trackbar的窗口。

注意:
若是已經存在這個名字的窗口,這個函數將不作任何事情。

 

2.在指定窗口中顯示圖像 cvShowImage

函數名稱:cvShowImage 
函數功能:在指定窗口中顯示圖像 
函數原型:
void cvShowImage( const char* name, const CvArr* image );
參數說明:

第一個參數:窗口的名字。 
第二個參數:被顯示的圖像。 

3.等待按鍵事件 cvWaitKey

函數名稱:cvWaitKey

函數功能:等待按鍵事件

函數原型:
int cvWaitKey( int delay=0 );
參數說明:

第一個參數:延遲的毫秒數,當delay<=0時表示無限等待。

函數返回值:

若是超過指定時間則返回-1,不然返回被按鍵的值。

 

編譯,竟然出錯了!!錯誤信息以下:

1>正在連接...

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvReleaseImage,該符號在函數_main 中被引用

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvDestroyWindow,該符號在函數_main 中被引用

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvWaitKey,該符號在函數_main 中被引用

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvShowImage,該符號在函數_main 中被引用

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvNamedWindow,該符號在函數_main 中被引用

1>opencv_test1.obj : error LNK2019: 沒法解析的外部符號_cvLoadImage,該符號在函數_main 中被引用

 

如今如何解決這個問題了?既然是在連接時出的錯,說明確定有靜態庫沒有被編譯器找到。所以咱們在VS2008中點擊「項目」,再點擊「屬性」,依次展開「配置屬性」-->「連接器」-->「輸入」在「附加依賴項中」添加以下靜態文件。

opencv_calib3d231d.lib opencv_contrib231d.lib opencv_core231d.lib opencv_features2d231d.lib opencv_flann231d.lib opencv_gpu231d.lib opencv_highgui231d.lib opencv_imgproc231d.lib opencv_legacy231d.lib opencv_ml231d.lib opencv_objdetect231d.lib opencv_ts231d.lib opencv_video231d.lib

 

再編譯,成功。程序運行結果以下圖所示:

 

呵呵,很酷的衝浪~~

 

下面列出OpenCV入門指南目錄,方便你們查看。

1.《【OpenCV入門指南】第一篇安裝OpenCV

2.《【OpenCV入門指南】第二篇縮放圖像

3.《【OpenCV入門指南】第三篇Canny邊緣檢測

4.《【OpenCV入門指南】第四篇圖像的二值化

5.《【OpenCV入門指南】第五篇輪廓檢測上

6.《【OpenCV入門指南】第六篇輪廓檢測下

7.《【OpenCV入門指南】第七篇線段檢測與圓檢測

8.《【OpenCV入門指南】第八篇灰度直方圖

9.《【OpenCV入門指南】第九篇灰度直方圖均衡化

10.《【OpenCV入門指南】第十篇彩色直方圖均衡化

11.《【OpenCV入門指南】第十一篇鼠標繪圖

12.《【OpenCV入門指南】第十二篇沒法運行OpenCV程序?

13.《【OpenCV入門指南】第十三篇人臉識別

14.《【OpenCV入門指南】第十四篇  Haartraining》即將發佈

 

轉載請標明出處,原文地址:http://blog.csdn.net/morewindows/article/details/8225783

《OpenCV入門指南》系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 

相關文章
相關標籤/搜索