學習OpenCV的學習筆記系列之-- 環境配置2,opencv學習筆記

來源:互聯網
上載者:User

學習OpenCV的學習筆記系列之-- 環境配置2,opencv學習筆記

要想學好OpenCV,首先當然要知道怎麼配置環境了。以本人的配置環境為例,步驟如下。

第一步 下載及解壓OpenCV源碼

雖然很多第三方網站及一些學習論壇會提供OpenCV的源碼下載,但是還是推薦到官網進行下載,這樣可以避免很多麻煩!(病毒?木馬?你懂得!)

官網的如下:

http://opencv.org/downloads.html

在此地址的介面上可以找到最新版本的OpenCV源碼。我使用的是2014-04-25更新的2.4.9版本(目前最新),根據自己的系統選擇對應的源碼版本。

因為我的電腦是WIN7x64Bit的,所以選擇“OpenCV for Windows”這個連結下載。

下載完成後,就可以見到這個exe的代碼解壓縮程式了


雙擊進入解壓程式,選擇解壓目錄,此處選擇的是G盤


點擊“Extract”按鈕,程式就會自動將OpenCV的原始碼解壓到G的“opencv”目錄下(這個目錄是自己產生的,不需要在釋放程式裡寫出來!)。


在“G:\opencv”目錄下,我們可以看到有“build”檔案夾及“source”兩個檔案夾。


第二步 配置OpenCV系統變數路徑

在安裝完OpenCV的原始碼之後,就要開始配置OpenCV的系統路徑了。

在開始菜單的“電腦”上點擊右鍵選擇“屬性”,在彈出的介面左側點擊“進階系統設定”,然後在“系統屬性”對話方塊中選擇“進階”選項卡


點擊“環境變數”按鈕


在彈出來的“環境變數”對話方塊下方的“系統變數”區,找到“Path”選項,然後雙擊


在彈出來的“編輯系統變數”對話方塊中,在“變數值”這一欄添加(注意是添加,就是在這一欄的最後使用分號隔開後添加)“G:\opencv\build\x86\vc10\bin;”及“G:\opencv\build\x64\vc10\bin;”(如果是32位系統,就可以不用後面這個)。

至此,OpenCV的系統變數的路徑配置完畢。


第三步 VS2010環境配置

開啟Visual Studio 2010,建立一個Visual C++項目,選擇“Win32控制台應用程式”,名字“HelloOpenCV”,位置隨意,然後點擊確定。


在彈出來的“Win32應用程式嚮導”對話方塊中 點擊 “下一步”

在接下來介面的“附加選項”中,勾選“空項目”,然後點擊“完成”。


在“HelloOpenCV”的項目工程介面中,點擊功能表列的“視圖”,選擇“其他視窗”,點擊“屬性管理員”。


在彈出來的“屬性管理員”中找到“Debug | Win32”檔案夾展開,雙擊“Microsoft.Cpp.Win32.user”選項。


在接下來的“Microsoft.Cpp.Win32.user”屬性頁面中找到“通用屬性”下的“VC++目錄”選項,在其右側的“包括目錄”中,點擊“編輯”。


在彈出的“包含目錄”對話方塊中,建立3個包含目錄路徑:

1. G:\opencv\build\include

2. G:\opencv\build\include\opencv

3. G:\opencv\build\include\opencv2

點擊“確定”。



然後如法炮製,在“庫目錄”中添加OpenCV靜態庫的目錄路徑。


不管是不是64位系統,此處只需要添加“G:\opencv\build\x86\vc10\lib”就可以了,沒必要添加“G:\opencv\build\x64\vc10\lib”,除非你用的編譯器是64位的。



接下來配置動態連結程式庫


在Microsoft.Cpp.Win32.user”屬性頁面中點擊“連結器”中的“輸入選項”,點擊小箭頭,選擇“編輯”。


在彈出的“附加依賴項”對話方塊中添加以下路徑:

opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib

opencv_objdetect249.lib
opencv_ts249.lib
opencv_video249.lib
opencv_nonfree249.lib
opencv_ocl249.lib
opencv_photo249.lib
opencv_stitching249.lib
opencv_superres249.lib
opencv_videostab249.lib
opencv_calib3d249.lib
opencv_contrib249.lib
opencv_core249.lib
opencv_features2d249.lib
opencv_flann249.lib
opencv_gpu249.lib
opencv_highgui249.lib
opencv_imgproc249.lib
opencv_legacy249.lib
opencv_ml249.lib

這其中,藍色的是偵錯模式下的庫檔案,可以看出其名稱後面都帶一個“d”(代表debug),紅色的是release模式下的庫檔案,都不帶“d”尾碼的。

一般我們在這裡把帶d和不帶d的統統寫在這裡,因為以後建立所有工程時都會繼承這些公用屬性,以後也就不用每個工程都配置一番,省時省力。


第四步 工程測試

在經曆完以上步驟後,最好重啟一下系統,讓我們的一些配置生效,以避免接下來的測試出錯。


在我們建立的“HelloOpenCV”工程的“方案總管”中,右鍵點擊“源檔案”添加一個建立項。


在“添加新項”對話方塊中選擇添加一個“C++檔案(.cpp)”檔案,命名為“main”,點擊“添加”。


在main.cpp檔案中添加如下代碼:

#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>using namespace cv;int main(){// 讀入一張圖片Mat myImg=imread("test.jpg");// 建立一個名為 "HelloOpenCV"的視窗namedWindow("HelloOpenCV");// 顯示視窗imshow("HelloOpenCV",myImg);// 等待10s後視窗關閉waitKey(10000);}

百度一張圖片,改名為“test.jpg”,放入工程檔案目錄,然後編譯,編譯通過後,點擊調試。

效果如下:



至此,所有配置完成並測試通過。接下來,就可以享受OpenCV帶給我們的各種驚喜了。




openCV基礎問題(學習opencv例2)

CvCapture* capture = cvCreateFileCapture( );
改成這樣的話,一定要在設定中給變數,你在設定中給test.avi給argv[1] ,那樣才能行
 
怎學習opencv比較有效率?個opencv老師

從被實驗室推薦OpenCV到使用編程用了一個星期,感覺學習這個跟學習大多數程式工具是一樣的,就是實踐出真知。
1.首先是參考書,推薦你一本比較基礎的,我覺得非常適合上手。
《OpenCV教程——基礎篇》北航出版社
北航的虛擬現實實驗室許多師生都在使用opencv,有相當多的經驗,這書品質相當不錯,簡單易上手。附帶的光碟片中代碼可靠性相當高,有些直接就是某些演算法或問題的實現。
2.然後是學習方法。程式工具的學習與其他課程相當不同。如果為了考試,你大可不必理會這一套,根據考試科目的推薦教科書劃書背重點就好了,再做幾套習題,幾套試卷,答答疑,分數一定不錯。如果為了能夠真正使用,就要求邊學邊用。
3.具體過程:
建議先總覽全書,掌握OpenCV的架構和結構,結合緒論或是概述,瞭解OpenCV的使用方式和用途。一般書上會給出環境配置和需要下載的工具,請嚴格按照書上的要求做。書上推薦用VC++ 6.0,是有道理的,因為這個版本的VC有著相當廣大的使用基礎,CSDN,PUDN等論壇中都有大量的代碼支援。而且國內外師生的使用經驗也很豐富。我曾經使用VS 2008來完成,結果發現環境變數等配置遠比這個要複雜,以後學習過程中出了莫名其妙的問題還要逐步排查。

建議根據章節瞭解每個局部功能,先正確運行書上的例子(光碟片有代碼)。再次基礎上進行功能修改和消化,達到融會貫通。比如書上教會你opencv的映像格式,那麼你需要重點考慮映像資料的讀寫操作,在此基礎上試著插入演算法,對映像進行修改(比如簡單的翻轉、反色等等)。這種方法保證了你吃透了每一個例子,並且能區分關鍵代碼和通用代碼,方便你以後代碼融合使用。你不需要知道每一個函數的實現過程,你只需要知道每個函數的參數是什麼,功能是什麼,有什麼特殊要求(比像格式,參數記憶體配置)。如果不清楚,除了可以參考SDK的說明文檔,或者MSDN,也可以上百度知道或者自己寫簡單的剝離程式測試每個函數。

建議根據某個課題融合你所瞭解的方法,完成一個小小的項目。比如,你做個臉部偵測或是行人檢測。這些東西都有相當成熟的技術,大量的論文,實現方法五花八門。你不必被紛繁的論文所嚇倒,吸收其優秀的演算法思想,去其糟粕取其精,結合你自己的演算法完成任務就行。這樣,你可以在此基礎上撰寫你自己的論文,編寫示範程式來支援你的論文,做實驗程式來測試你的資料。如果你完成了這些步驟,可以說,你的opencv就算入門了。

以上都是我的個人見解,並不具有說服力,只是給喜歡學習程式設計的同學們交流一下。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.