Hough Transform 與矩形檢測。

2021-07-05 09:25:03 字數 766 閱讀 8168

houghtransform可用於檢測影象中的直線。最近試圖用此方法來實現某類影象中的邊框檢測。想用opencv中的方法。由於這個變換可以檢測各種線段,導致檢測出來的結果上全是線,當然引數是可調整的,而且此方法是在canny運算元檢測影象邊緣基礎上使用的。opencv中的cvcanny是不能自適應的,對不同的影象要設定不同的大小閾值,而閾值嚴重影響著結果,邊緣檢測的結果也同時直接影響著直線檢測。

故思路:先將cvcanny換成自適應演算法。可以檢測出足夠精細的邊緣資訊。以下為**。如果想不修改opencv庫,那可以把這個做為函式單位加到工程裡,我是這樣做的,沒問題。

canny 自適應: 

在此基礎上找出直線,找最長的直線,由於我只想要垂直和水平線,有點小糾結,直接用cvhoughlines2中的standard方法的話,可以控制所取直線的角度,但是效果不是特別好,因為這個函式也有讓人頭大的閾值。但如果只是想找最長直線以下的這個很有用的。只畫出最長的,就不用看著滿屏的線線糾結了。

利用hough 變換找最長線段: 

曾經試著把影象分割為上下左右四部分,在每部分中檢測最長的直線。只試了一張,還行。

突然靈光一閃,我在找直線檢測的相關東西時看到了乙個檢測各種形狀的綜合**。本來看著也沒感覺,一看到矩形,想到,我本來不就是要矩形嗎,為什麼不直接找矩形,還費力的一條邊一條邊的找幹嗎?此大牛的**,感謝萬分。

檢測直線、矩形、三角形、圓:

鑑於工作內容不方便公布檢測影象的結果,如果檢測出來的形狀過多,如矩形,可以選擇只保留角度最接近正矩形的乙個形狀,另外形狀的區域大小也可以幫助達到需要的檢測結果。

霍夫變換 Hough Transform

霍夫變換的主要作用是從影象中檢測出具有某種相同特徵的幾何形狀,如直線 圓等。霍夫變換的基本原理 例如檢測情景為直線檢測。我們知道,在直角座標系下,直線方程表示為y k x b 其中k,b 為引數,表示直線的斜率和截距。那麼,對於直角座標系下的某個特定點 x 0,y0 過該點的任意直線方程為y0 k ...

Hough transform 霍夫變換

主要內容 1 hough變換的演算法思想 2 直線檢測 3 圓 橢圓檢測 4 程式實現 hough變換是影象處理中從影象中識別幾何形狀的基本方法之一。hough變換的基本原理在於利用點與線的對偶性,將原始影象空間的給定的曲線通過曲線表達形式變為引數空間的乙個點。這樣就把原始影象中給定曲線的檢測問題轉...

Hough Transform 霍夫變換檢測直線

hough transform 霍夫變換檢測直線 從理論到 再從 到理論 1 理論之通俗理解 1.在影象中檢測直線的問題,其實質是找到構成直線的所有的畫素點。那麼問題就是從找到直線,變成找到符合y mx c的所有 x,y 的點的問題。2.進行座標系變化y mx c,變成c xm b。直線上的點 x1...