OpenCV學習之基於Hough變換的直線檢測

2021-07-25 08:32:23 字數 1278 閱讀 6691

前段時間在和朋友交流關於影象處理問題的時候,他們問我有沒有做過影象智慧型識別的課題。對於習慣了做開發,而很少接觸底層影象處理演算法的我來說,其實算是比較陌生的乙個課題。

但是,演算法的確才是乙個系統優秀與否的核心。同樣的兩套系統相比較,最後勝出的往往是效能更好的,而決定效能的通常便是底層的演算法了。

在影象處理領域,我之前接觸的主要是matlab和itk/vtk。而在影象處理領域,還有乙個很重要的庫opencv,之前卻接觸得很少。還有現在基於python也有很多成熟的庫來實現基本的影象處理,如scikit-image。

因此,接下來在進行開發的過程中,也要注意對演算法的積累。開發更多的是一種熟練性質的工作,但是演算法卻不是一朝一夕能夠掌握的,需要很多的數學基礎知識的積累。

未來主要的學習也會集中在:

(1)數字影象處理演算法(影象預處理,分割和配準);

(2)資料探勘;

(3)機器學習;

(4)自然語言處理。

其實這幾個領域,任何乙個領域都足以讓我學習一輩子,任何乙個領域如果足夠精通我想都不得了了。

但是,這些演算法的底層都是數學,而且很多演算法其實是相通的。當真正地都了解了以後,或許都是可以觸類旁通,融會貫通的。希望有朝一日自己能夠達到這樣的程度吧。而且,網上還有很多優秀的教程和課件供自己學習。

那麼這篇文章就作為我研究影象處理演算法的乙個開篇吧。

本文主要是基於opencv進行直線檢測。以下是基於他給出的程式**,對一副圖進行直線檢測的例子。通過這個例子,可以對opencv有乙個直觀的了解。俗話說,興趣是最好的老師。如果你看到以下的圖會無比興奮的話,那麼就趕快投入演算法學習的懷抱吧!

可以看到這幅圖中有很多的直線。那麼如何檢測出這些直線呢?基於hough變換的直線檢測可以很方便地通過調節一些引數來實現直線檢測。

以下是根據不同的引數設定,得到的直線檢測的結果:

(1)閾值為104時的檢測結果:

(2)閾值為174時的檢測結果:

(3)閾值為200時的檢測結果:

淺墨-csdn- 【opencv入門教程之十四】opencv霍夫變換:霍夫線變換,霍夫圓變換合輯

opencv之基於qt ide除錯

opencv 2.2是乙個里程碑版本。build all.sh用於編譯samples c目錄下的c和cpp檔案。是乙個遍歷的效果。可以提煉其核心編譯語句用於其他c或cpp檔案的編譯。發現另外一本書,用於學習opencv 2。非常好,但同時需要將qt編譯環境熟悉起來。影象畫素的儲存是否連續?如果沒有p...

基於python的opencv學習

dst cv2.sobel src,ddept,dx,dy,ksize ddepth 影象的深度,一般設為 1ksize sobel運算元的大小 白到黑是正數,黑到白是負數,所有的負數都會被截斷為0,因此要使用convertscaleabs取絕對值2 拉普拉斯金字塔 1 低通濾波 2 縮小尺寸pyr...

Opencv學習之cvCreateMat的用法

cvcreatemat的用法 分配矩陣空間 cvmat cvcreatemat int rows int cols int type type 矩陣元素型別,格式為cv s u f c 如 cv 8uc1 表示8位無符號單通道矩陣 cv 32sc2 表示32位有符號雙通道矩陣 例程 cvmat m ...