如何學習Opencv資料?opencv的安裝使用

2021-07-11 07:47:11 字數 3260 閱讀 5616

opencv是什麼,相信搞機器視覺的朋友都清楚。但是很多搞機器視覺的朋友卻是對他又愛又恨。愛它因為它是免費的,如果能夠好好掌握它,並運用到自己的機器視覺專案中,還是可以一定程度上降低專案成本。恨它是因為它不太好學習。原因有以下幾個:

1、國內有關opencv的中文著作太少了,就2本,而且還是1.1版本的,已經和現在最新版本2.4.3差別太大,就算是學習了,過渡到最新版也要花一定的時間和精力。

2、直接學習較高版本,可是沒有相應的教程可以參考。直接看英文版本的幫助文件吧,對於英文不好的朋友,難度很大。

3、就算是英文可以的朋友,該如何高效的學習opencv,估計有些人也沒有乙個良好的方法,導致學習效果不好。

為了幫助那些想學opencv卻又不得法的朋友,本人姑且把自己自學opencv的一點點經驗拿出來分享一下,希望能夠幫到有需要的朋友。已經掌握了良好學習方法並且已經一定程度掌握opencv的朋友,還希望不要吐槽。

**如下:

2、有的文章提到使用cmake把opencv下面的範例生成為visual studio的工程,此處我沒有這樣做。直接使用範例。這裡先把opencv目錄下面的幾個重要目錄做個說明(見附件):

doc目錄:主要包含opencv的幫助文件。其中opencv2refman.pdf主要是opencv的各種類和函式的使用說明。opencv_tutorials.pdf,主要是下面教學**目錄裡面各個教學範例的簡單講解。opencv_cheatsheet.pdf主要是最常用opencv類和函式的集合。此3個pdf文件對自學者幫助最大。

samples\cpp\tutorial_code目錄:裡面包含基本教學**。和上面的opencv_tutorials.pdf文件遙相呼應,構成乙個完整的自學體系。

build目錄:包含編譯,除錯,發布所需要的各類動態庫,靜態庫,標頭檔案等。

因為opencv2.4.3好像只支援visualstudio 2008以上版本,我在這裡以visual studio 2008為例講解如何讓範例跑起來。

1、新增環境變數:見。此處我在path環境變數中新增如下目錄:d:\program files\opencv2.4.3\build\x86\vc9\bin。記住在前面乙個目錄後面加分號。

4、建立乙個新建visualstudio vc win32控制台應用工程,這裡我選擇帶預編譯頭的工程,省去新增cpp檔案的工作。

5、**建立:這裡我選擇samples\cpp\tutorial_code\imgproc\morphology_2.cpp檔案。先新增包含目錄,如下(以後所有範例均可以如下新增):

#include

#include

然後複製**,見附件:

6、編譯檔案:自然少不了要包含靜態庫,要新增的庫(debug版和release差別就是檔名後多了乙個d標識是debug版)如下:

debug版

opencv_calib3d243d.lib

opencv_contrib243d.lib

opencv_core243d.lib

opencv_features2d243d.lib

opencv_flann243d.lib

opencv_gpu243d.lib

opencv_haartraining_engined.lib

opencv_highgui243d.lib

opencv_imgproc243d.lib

opencv_legacy243d.lib

opencv_ml243d.lib

opencv_nonfree243d.lib

opencv_objdetect243d.lib

opencv_photo243d.lib

opencv_stitching243d.lib

opencv_ts243d.lib

opencv_video243d.lib

opencv_videostab243d.lib

release版

opencv_calib3d243.lib

opencv_contrib243.lib

opencv_core243.lib

opencv_features2d243.lib

opencv_flann243.lib

opencv_gpu243.lib

opencv_haartraining_engine.lib

opencv_highgui243.lib

opencv_imgproc243.lib

opencv_legacy243.lib

opencv_ml243.lib

opencv_nonfree243.lib

opencv_objdetect243.lib

opencv_photo243.lib

opencv_stitching243.lib

opencv_ts243.lib

opencv_video243.lib

opencv_videostab243.lib

新增方法見附件。

7、字符集設定:如果編譯過程中出現如下錯誤:

不能將引數 1 從「_tchar *」轉換為「const std::string &」原因如下: 無法從「_tchar *」轉換為「const std::string」。請字符集設定為「使用多位元組字符集」,設定方法見附件。

8、最後指定命令後引數:方法見附件。這樣就可以不用在windows命令列下輸入引數了,方便除錯,但是要注意,必須放在你所建立的工程目錄下(和.cpp以及.h檔案同一目錄)。否則就要加上相應的路徑。如果引數多於1個,請以空格分開。

9、支援所有引數設定完成,開始編譯執行吧。

如果visual studio無問題的話,按照以上按部就班操作,每個範例均可以正常執行。

學習opencv 2.4.3,不要先急著敲**,應該要先把它的**執行一遍,看看是什麼結果。先知道執行結果,再逆向推導程式設計思路,最後看**,分析**,把每乙個opencv類和函式的功能作用搞清楚,形成自己的思路,最後拋開原來的**,按照自己的思路,把**敲進去,這樣才能實現消化吸收。

當然每個人的學習方法未必相同,或許別人有自己的獨特的學習opencv的更好方法。如果是這樣的話,不妨拿出來分享一下。

最後,要學好opencv並利用opencv做機器視覺專案,僅靠opencv提供的api是不夠,還需要補充一定的數字影象處理的基礎知識,不求自己寫處理演算法,但是每個opencv處理運算元的功能,應用範圍,是要清楚的,只有這樣,才在具體的應用中知道該使用什麼樣的api。

以上就是我目前自學opencv 2.4.3的一點點心得,拿出來和大家分享一下。如果是opencv高手,還煩請口下留情,少吐槽,多指點。如果能夠幫助到新手,我甚感欣慰。

如何開始學習OpenCV

opencv是什麼,相信搞機器視覺的朋友都清楚。但是很多搞機器視覺的朋友卻是對他又愛又恨。愛它因為它是免費的,如果能夠好好掌握它,並運用到自己的機器視覺專案中,還是可以一定程度上降低專案成本。恨它是因為它不太好學習。原因有以下幾個 1 國內有關opencv的中文著作太少了,就2本,而且還是1.1版本...

Opencv學習資料

一直都關注yang xian521的opencv專欄,為了方便學習,這裡mark先 opencv學習筆記 六十 建立支援opengl的opencv工程 master opencv chp.3 opencv學習筆記 五十九 marker檢測識別 master opencv chp.2 opencv學習...

OpenCV學習資料

由於畢業 選擇了ar方向的題目,需要學習opencv,希望通過三個月的自學能順利完成 答辯。這個系列的學習記錄分為兩部分 一是學習opencv中基本資料結構,各模組的功能,以及如何呼叫 二是結合各模組實現一些例程。demo 我使用的是opencv 2.4.5,開發環境是vc 2010 express...