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


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

 

【OpenCV第一篇】安裝OpenCV

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

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

一.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。然后解壓縮就完成了安裝。安裝過程如下圖所示:

 

二.在我的電腦中配置OpenCV

在“我的電腦”右擊彈出“系統屬性”對話框,選擇“高級”再點擊“環境變量”,然后再編輯path,在“編輯用戶變量”對話框的變量值輸入以下三條,注意用“;”來分開。

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

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

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

 

三.在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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM