hough變換原理

Hough变换是一种图像处理技术,用于识别几何形状,如直线、圆等。通过将图像空间的曲线转换为参数空间的点,检测问题转化为寻找参数空间的峰值。例如,图像中的每个点对应参数空间的一条线,最终通过统计参数空间的聚集点来确定图像中的直线或形状。实际应用中,直线通常用参数方程p=x*cos(theta) + y*sin(theta)表示,而圆的检测则涉及两个参数(a, b)。Hough变换不仅可以检测已知半径的圆,还能处理未知半径的圆以及椭圆,但随着维度增加,计算量也会相应增大。" 138347086,11321580,Python分布式爬虫实战:微博抓取与Redis调度,"['python', '爬虫', '分布式爬虫', '数据抓取', '数据存储']
摘要由CSDN通过智能技术生成
http://blog.chinaunix.net/uid-24517893-id-2752072.html  

Hough變換是圖像處理中從圖像中識別幾何形狀的基本方法之一。Hough變換的基本原理在於利用點與線的對偶性,將原始圖像空間的給定的曲線通 過曲線表達形式變為參數空間的一個點。這樣就把原始圖像中給定曲線的檢測問題轉化為尋找參數空間中的峰值問題。也即把檢測整體特性轉化為檢測局部特性。比 如直線、橢圓、圓、弧線等。

Hough變換的基本思想

    設已知一黑白圖像上畫了一條直線,要求出這條直線所在的位置。我們知道,直線的方程可以用y=k*x b 來表示,其中k和b是參數,分別是斜率和截距。過某一點(x0,y0)的所有直線的參數都會滿足方程y0=kx0 b。即點(x0,y0)確定了一族直 線。方程y0=kx0 b在參數k--b平面上是一條直線,(你也可以是方程b=-x0*k y0對應的直線)。這樣,圖像x--y平面上的一個前景像素 點就對應到參數平面上的一條直線。我們舉個例子說明解決前面那個問題的原理。設圖像上的直線是y=x, 我們先取上面的三個點:A(0,0), B(1,1), C(22)。可以求出,過A點的直線的參數要滿足方程b=0, 過B點的直線的參數要滿足方程1=k b, 過C點的直線的參數要滿足方程2=2k b, 這三個方程就對應著參數平面上的三條直線,而這三條直線會相交於一點(k=1,b=0)。 同理,原圖像上直線y=x上的其它點(如(3,3), (4,4)等) 對應參數平面上的直線也會通過點(k=1,b=0)。這個性質就為我們解決問題提供了方法,就是把圖像平面上的點對應到參數平面上的線, 最後通過統計特性來解決問題。假如圖像平面上有兩條直線,那麼最終在參數平面上就會看到兩個峰值點,依此類推。

    簡而言之,Hough變換思想為:在原始圖像坐標系下的一個點對應了參數坐標系中的一條直線,同樣參數坐標系的一條直線對應了原始坐標系下的一個點,然 後,原始坐標系下呈現直線的所有點,它們的斜率和截距是相同的,所以它們在參數坐標系下對應於同一個點。這樣在將原始坐標系下的各個點投影到參數坐標系下 之後,看參數坐標系下有沒有聚集點,這樣的聚集點就對應了原始坐標系下的直線。

    

    首先,初始化一塊緩沖區,對應於參數平面,將其所有數據置為0.對於圖像上每一前景點,求出參數平面對應的直線,把這直線上的所有點的值都加1。最後,找到參數平面上最大點的位置,這個位置就是原圖像上直線的參數。

     在實際應用中,y=k*x b形式的直線方程沒有辦法表示x=c形式的直線(這時候,直線的斜率為無窮大)。所以實際應用中,是采用參數方程 p=x*cos(theta) y*sin(theta)。這樣,圖像平面上的一個點就對應到參數p---theta平面上的一條曲線上,其它的還是一 樣。

    Hough變換推廣

    1、已知半徑的圓

    其實Hough變換可以檢測任意的已知表達形式的曲線,關鍵是看其參數空間的選擇,參數空間的選擇可以根據它的表達形式而定。比如圓的表達形式為,所以當 檢測某一半徑的圓的時候,可以選擇與原圖像空間同樣的空間作為參數空間。那麼圓圖像空間中的一個圓對應了參數空間中的一個點,參數空間中的一個點對應了圖 像空間中的一個圓,圓圖像空間中在同一個圓上的點,它們的參數相同即a,b相同,那麼它們在參數空間中的對應的圓就會過同一個點(a,b),所以,將原圖 像空間中的所有點變換到參數空間後,根據參數空間中點的聚集程度就可以判斷出圖像空間中有沒有近似於圓的圖形。如果有的話,這個參數就是圓的參數。

    2、未知半徑的圓對於圓的半徑未知的情況下,可以看作是有三個參數的圓的檢測,中心和半徑。這個時候原理仍然相同,只是參數空間的維數升高,計算量增大。 圖像空間中的任意一個點都對應了參數空間中的一簇圓曲線。,其實是一個圓錐型。參數空間中的任意一個點對應了圖像空間中的一個圓。

    3、橢圓橢圓有5個自由參數,所以它的參數空間是5維的,因此他的計算量非常大,所以提出了許多的改進算法。

    圖像空間中的在同一個圓,直線,橢圓上的點,每一個點都對應了參數空間中的一個圖形,在圖像空間中這些點都滿足它們的方程這一個條件,所以這些點,每個投 影後得到的圖像都會經過這個參數空間中的點。也就是在參數空間中它們會相交於一點。所以,當參數空間中的這個相交點的越大的話,那麼說明元圖像空間中滿足 這個參數的圖形越飽滿。越象我們要檢測的東西。 Hough變換能夠查找任意的曲線,只要你給定它的方程。Hough變換在檢驗已知形狀的目標方面具有受曲線間斷影響小和不受圖形旋轉的影響的優點,即使 目標有稍許缺損或污染也能被正確識

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值