1. 程式人生 > >霍夫變換的圓檢測原理

霍夫變換的圓檢測原理

Hough 變換的原理

Hough 變換的原理就是利用影象全域性特徵將邊緣畫素連線起來組成區域封閉邊界,它將影象空間轉換到引數空間,在引數空間對點進行描述,達到檢測影象邊緣的目的。該方法把所有可能落在邊緣上的點進行統計計算,根據對資料的統計結果確定屬於邊緣的程度。Hough 變換的實質就是對影象進行座標變換,把平面座標變換為引數座標,使變換的結果更易識別和檢測。

對經典的Hough 變換的理解

已知圓的一般方程為:(x - a)^2 + (y - b)^2 = r^2
其中,(a, b)為圓心,r為圓的半徑。

把X-Y平面上的圓轉換到a-b-r引數空間,則影象空間中過(x, y)點圓對應引數空間中,高度r變化下的一個三維錐面,如下圖:

同理,過影象空間中任意一點的圓對應於引數空間中的一個三維錐面。因此,過影象空間上同一圓上的點,對應的引數空間中的三維錐面,在r高度必然相交於一點(a, b, r)。這樣通過檢測這一點可以得到圓的引數,相應的圓也可求得了。影象平面的方程轉化為引數平面上的示意圖如圖所示:


這樣就對經典hough變化如何將檢測從影象空間轉到引數空間有了較清晰的瞭解。

相關推薦

變換檢測演算法

地址:http://blog.csdn.net/jia20003/article/details/17252807 霍夫圓檢測opencv: http://blog.csdn.net/wenhao_ir/article/details/51783566 霍夫直線檢測open

Opencv——變換直線檢測原理理解

霍夫變換(Hough Transform)是影象處理中的一種特徵提取技術,它通過一種投票演算法檢測具有特定形狀的物體。該過程在一個引數空間中通過計算累計結果的區域性最大值得到一個符合該特定形狀的集合作為霍夫變換結果。霍夫變換於1962年由Paul Hough 首次提出[53],後於1972年由Richard

變換直線檢測原理理解

Radon變換則以線積分的形式把影象空間投影到ρθ空間(等同於直線的引數空間)。 直線Hough變換與Radon變換的區別在於前者是直線引數變換的離散形式,而後者則是直線引數變換的連續形式。所以Hough變換直接應用在二值影象上,而Radon變換直接應用在灰度影象上。另外,由於二值影象只需要處理前景或者背景畫

變換直線檢測基本原理hough,houghpeaks,houghlines

一步一步來: 1、在白紙上畫出一個直角座標系,任意給出一個點; 2、那麼,對於點(x0,y0),經過這個點的直線必定滿足y0=k*x0+b, 其中k是直線的斜率,b是直線的截距; 3、上式可以化成b=y0-k*x0,  可以看作是以-x0為斜率,以y0為截距,在k

變換——直線檢測

霍夫變換(Hough)通過轉換座標系,將特定形狀的檢測對映到引數空間中,從而根據引數空間中的值來確定特定形狀的相關資訊。   Hough變換的比較簡單的應用例子有檢測直線。 檢測直線   設空間中有若干點,我們要判斷這些點是否能構成一條直線,即為直線檢測。

變換直線檢測houghlines及opencv的實現分析

導讀: 1. houghlines的演算法思想 2. houghlines實現需要考慮的要素 3. houghlines的opencv實現,程式碼分析 4. houghlines的效率分析,改進 1. houghlines的演算法思想 檢測直線,houghlines標準演算

變換直線檢測的matlab實現

clear all; BW=imread('hough1.jpg'); BW=rgb2gray(BW); %BW=medfilt2(BW,[2 2]) thresh=[0.01,0.10]; sigma=2;%定義高斯引數 f = edge(double(BW),'canny',t

變換(hough transform)原理

      廣義霍夫變換之所以能處理任意形狀的圖形並不是找到了可以表示任意圖形的方程(這是不可能的),而是使用表的形式描述一種圖形,把圖形邊緣點座標儲存在一張表中,那麼該圖形就確定下來了,所以其實無論是直線(其實是線段)、圓、橢圓還是其他形狀的幾何圖形,都可以使用同一方法處理,所不同的是這時候的圖形是自定義的

概率變換檢測直線——HoughLinesP引數分析

HoughLinesP引數分析 void HoughLinesP(InputArray image,OutputArray lines, double rho, double theta, int threshold, double minLineLength=0,d

Matlab實現——變換直線檢測

霍夫變換實現直線檢測——MATLAB網上好多不能用,就重新寫了一個:% 入口影象為 BW,出口影象為f clc,close BW=imread('D:\picture\9dafa605d53eea243812bb29.jpg'); BW=rgb2gray(BW); thres

python變換圓形檢測、cv.CV_HOUGH_GRADIENT沒有定義的解決方法

簡述   基於python使用opencv實現在一張圖片中檢測出圓形,並且根據座標和半徑標記出圓。不涉及理論,只講應用。 相關函式 函式說明: Python: cv2.HoughCircles(image, method, dp, minDist[

Opencv學習---變換檢測的基本原理

為了方便以後檢視,將基本筆記收藏到這裡! 原博文:http://blog.csdn.net/yizhaoyanbo/article/details/59172991     其實檢測圓形和檢測直線的原理差別不大,只不過直線是在二維空間,因為y=kx+b,只有k和b兩

變換檢測原理

Hough 變換的原理 Hough 變換的原理就是利用影象全域性特徵將邊緣畫素連線起來組成區域封閉邊界,它將影象空間轉換到引數空間,在引數空間對點進行描述,達到檢測影象邊緣的目的。該方法把所有可能落在邊緣上的點進行統計計算,根據對資料的統計結果確定屬於邊緣的程度。Hough

9.變換——介紹、用Hough檢測的Hough變換_1

目錄 介紹 介紹 畫好直線之後,記住,線是引數模型最簡單的形式,現在我們來看看更復雜的東西,也就是圓。 這是圓的方程,其中 a 和 b 是中心,r 是半徑: 現在我們假設半徑已知。我們只需要找到這些點的位置。 這裡有一個圓,在這個圓上有三個點,這裡的藍

變換檢測直線原理及例項

霍夫變換原理 霍夫變換(Hough Transform)是影象處理中的一種特徵提取技術,該過程在一個引數空間中通過計算累計結果的區域性最大值得到一個符合該特定形狀的集合作為霍夫變換結果。 直線可以由直角座標或極座標表示,直線可以由直角座標或極座標表示,直角座標表示直線時,

利用變換做直線檢測原理及OpenCV程式碼實現

說白了,以直線檢測為例,霍夫變換實際上就是把使每個畫素座標點經過變換都變成都直線特質有貢獻的統一度量(這種度量以我目前的理解與笛卡爾(極坐系)並無區別,即極半徑和極角),並對轉換後的度量進行累計(可以理解為投票),當一個波峰出現時候,說明有直線存在。如果要了解更詳細的,大

變換檢測直線--原理和Matlab實現

該部落格所需程式碼和資原始檔可以到Github中進行下載。 霍夫變換本質上是座標變換,如下圖1,左半部分表示直線的xy空間,直線方程為y=mx+cy=mx+cy=mx+c,其中斜率為m,截距為c。右半部分表示將直線從xy空間變換到mc空間,取直線在xy空間上的四

變換檢測圓形原理分析

上一篇部落格中簡要描述了一下自己對霍夫變換檢測直線的原理理解,現在說一下檢測圓形的原理。 其實檢測圓形和檢測直線的原理差別不大,只不過直線是在二維空間,因為y=kx+b,只有k和b兩個自由度。而圓形

20、【opencv入門】變換變換變換合輯

接收 最大 sta point hci 都在 imread 創建 滾動 一、引言   在圖像處理和計算機視覺領域中,如何從當前的圖像中提取所需要的特征信息是圖像識別的關鍵所在。在許多應用場合中需要快速準確地檢測出直線或者圓。其中一種非常有效的解決問題的方法是霍夫(Hough

8.變換:線條——投票原理空間、線的極座標表示_2

目錄 投票原理 霍夫空間 線的極座標表示 投票原理 就像我之前說的,檢查每一行是不可能的,即使是一臺非常非常快的電腦。 我們要做的是讓資料告訴我們,讓資料決定線在哪裡。 因為這是民主,我們該怎麼辦?   我們要做的是投票。 因此,投票是一種通用的技術