RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

霍夫變換的原理簡述

新機器視覺 ? 來源:技術(shù)飯 ? 2023-12-19 16:56 ? 次閱讀

來源:技術(shù)飯

霍夫變換是一種對圖像中形狀的定位技術(shù),常被用于提取圖像中的直線,圓和橢圓等簡單形狀?;舴蜃儞Q運用兩個坐標(biāo)空間之間的變換,將在一個空間中具有相同形狀的曲線或直線映射到另一個坐標(biāo)空間的一個點上形成峰值,從而把檢測任意形狀的問題轉(zhuǎn)化為統(tǒng)計峰值問題。

簡單形狀指可以用少量參數(shù)表示的形狀,如,直線可由兩個參數(shù)表示?;舴蜃儞Q的主要優(yōu)點是它對遮擋不敏感。本文通過一個簡單的例子來介紹霍夫變換如何運作的。

霍夫變換檢測直線

直線的方程通常表示為:

ccd96894-9e46-11ee-8b88-92fbcf53809c.png

該函數(shù)中斜率m可以取介于–∞到+∞之間的值。但對于霍夫變換,參數(shù)需要有界。故在霍夫變換中,直線的極形表示為:

cce3352c-9e46-11ee-8b88-92fbcf53809c.png

(方程1)

這里ρ表示直線與原點的垂直距離(以像素為單位),θ是以弧度為單位測量的角度,直線與原點形成的角度,如下圖所示:

cceafc1c-9e46-11ee-8b88-92fbcf53809c.png

在理論上,ρ可能取0到+∞之間的值,但因為圖片本身是有限的,故ρ也是有界的。

累加器

在2D空間中,每一個(ρ,θ)對應(yīng)一條線,這個過程也叫做線由ρ和θ參數(shù)化。

下圖2D陣列被稱為累加器,因為我們將使用這個陣列的倉來收集圖像中存在哪些線的證據(jù)。左上角的單元格對應(yīng)于a(-R,0),右下角對應(yīng)于(R,π)。隨著收集到更多關(guān)于存在具有參數(shù)ρ和θ的線的證據(jù),容器內(nèi)的值(ρ,θ)將增加。

ccfe4b6e-9e46-11ee-8b88-92fbcf53809c.png

檢測圖像中的線條需要以下幾個步驟:

1.初始化累加器

首先需要創(chuàng)建一個累加器數(shù)組。累加器中的單元格數(shù)量是一個設(shè)計決定。假設(shè)選擇了一個10×10的累加器,意味著ρ只能取10個不同的值,θ可以取10個不相同的值,因此程序可以檢測到100種不同的線。累加器的大小也將取決于圖像的分辨率。

2.檢測邊緣

當(dāng)累加器設(shè)置好后,我們需要為累加器的每個單元搜集數(shù)據(jù)。如果圖像中有一條可見線,則邊緣檢測器應(yīng)在該線的邊界處發(fā)射。這些邊緣像素為線的存在提供了數(shù)據(jù)。邊緣檢測的輸出是邊緣像素的陣列 [ (x1, y1), (x2, y2) ... (xn, yn)]

3. 按邊緣像素進(jìn)行投票

對于上述陣列中的每個邊緣像素(x,y),我們將θ的值從0變?yōu)棣?,并將其代入方?,以獲得ρ的值。在下圖中,我們改變?nèi)齻€像素的θ(由三條彩色曲線表示),并使用方程1獲得ρ的值。這些曲線在一點相交,這表明參數(shù)為θ=1和ρ=9.5的線正在穿過它們。

cd067578-9e46-11ee-8b88-92fbcf53809c.png

我們會得到數(shù)百個邊緣像素,累加器用于找到由邊緣像素生成的所有曲線的交點。

假設(shè)我們的蓄能器尺寸為20×20。因此,θ有20個不同的值,因此對于每個邊緣像素(x,y),我們可以使用方程1計算20個(ρ,θ)對。與這20個(ρ,θ)值相對應(yīng)的累加器的bin遞增。我們對每個邊緣像素都這樣做,現(xiàn)在我們有了一個累加器,它擁有關(guān)于圖像中所有可能線條的所有數(shù)據(jù)。我們可以簡單地選擇累加器中高于某個閾值的倉,以找到圖像中的線。如果閾值更高,則強線更少,如果閾值更低,就會發(fā)現(xiàn)大量的線,包括一些弱線。

在OpenCV中,使用Hough變換的線檢測在函數(shù)HoughLines和HoughLinesP中實現(xiàn)。此函數(shù)包括以下參數(shù):

edges:邊緣檢測器的輸出

line:用于存儲線的起點和終點坐標(biāo)的矢量。

rho:分辨率參數(shù)ρ(以像素為單位)

θ:參數(shù)θ的分辨率,單位為弧度

threshold:檢測直線的最小交點

cd18b9a4-9e46-11ee-8b88-92fbcf53809c.png

cd2e2474-9e46-11ee-8b88-92fbcf53809c.png

結(jié)果:

霍夫變換檢測圓

在線霍夫變換的情況下,我們要檢測圓需要三個參數(shù):(x,y)圓心的坐標(biāo),半徑。所以圓探測器將需要一個3D累加器,每個參數(shù)一個。圓的方程為:

cd6e7a06-9e46-11ee-8b88-92fbcf53809c.png

要檢測圓需要以下步驟:

1. 在邊緣檢測器(Canny)的幫助下找到給定圖像中的邊緣。

2. 為圓半徑的最大值和最小值設(shè)置了閾值。

3. 在3D累加器陣列中收集存在具有不同中心和半徑的圓的數(shù)據(jù)。

函數(shù)HoughCircles在OpenCV中用于檢測圖像中的圓。它采用以下參數(shù):

image:輸入圖像。

method:檢測方法。

dp:累加器分辨率與圖像分辨率的反比。

mindst:檢測到的圓中心之間的最小距離。

param_1和param_2:這些是特定于方法的參數(shù)。

min_Radius:待檢測圓的最小半徑。

max_Radius:要檢測的最大半徑。

cd7dce48-9e46-11ee-8b88-92fbcf53809c.png

cddeb6e0-9e46-11ee-8b88-92fbcf53809c.png

檢測結(jié)果如下,其質(zhì)量很大程度上決定于邊緣的質(zhì)量。

霍夫變換最早于1962年被提出,但隨著計算機視覺近年來的飛速發(fā)展,這種算法才開始廣泛使用。如今,特征提取的需求量越來越大,對于數(shù)據(jù)進(jìn)行標(biāo)記所耗費的時間和精力也極大,而霍夫變換可在復(fù)雜的場景中提取特征,應(yīng)用范圍十分廣泛。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1083

    瀏覽量

    40449
  • 定位技術(shù)
    +關(guān)注

    關(guān)注

    7

    文章

    288

    瀏覽量

    25350
  • 2D
    2D
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    15198
  • 累加器
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    9447

原文標(biāo)題:霍夫變換基礎(chǔ)簡述

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基爾霍夫定律及其應(yīng)用

    基爾霍夫定律及其應(yīng)用         一、基爾霍夫電流
    發(fā)表于 09-24 12:02

    變換檢測圓,用于球體識別,如何標(biāo)定

    變換檢測到圓了,圓心差不多確定了,但是如何標(biāo)定 啊,我用i=imshow('G:\球門.jpg'),title('標(biāo)記');x0 =par1, y0 =par2; theta=0:pi/100
    發(fā)表于 11-16 00:17

    什么是基爾霍夫電壓定律

    什么是基爾霍夫電壓定律?基爾霍夫電壓定律的內(nèi)容有哪些?
    發(fā)表于 09-30 08:45

    驗證基爾霍夫定律

    驗證基爾霍夫定律 一、實驗?zāi)康?. 驗證基爾霍夫定律的正確性,加深對基爾霍夫定律的理解。2. 學(xué)會用電流
    發(fā)表于 09-24 09:28 ?2.3w次閱讀
    驗證基爾<b class='flag-5'>霍夫</b>定律

    基爾霍夫定律實驗

    基爾霍夫定律實驗 一、實驗?zāi)康?⒈ 驗證基爾霍夫定律。?
    發(fā)表于 09-24 19:17 ?3.9w次閱讀
    基爾<b class='flag-5'>霍夫</b>定律實驗

    基爾霍夫定律與疊加原理

    實驗 基爾霍夫定律與疊加原理一.  實驗?zāi)康? 1. 驗證基爾霍夫定律的正確性,加深對基爾霍夫定律的理解。
    發(fā)表于 11-02 22:20 ?1.8w次閱讀
    基爾<b class='flag-5'>霍夫</b>定律與疊加原理

    基爾霍夫定律

    基爾霍夫定律  基爾霍夫定律是描述電路中電壓、電流遵循的最基本的規(guī)律。在介紹基爾霍夫定律之前,首先
    發(fā)表于 07-27 10:15 ?1.2w次閱讀
    基爾<b class='flag-5'>霍夫</b>定律

    變換綜合示例_《OpenCV3編程入門》書本配套源代碼

    《OpenCV3編程入門》書本配套源代碼:變換綜合示例
    發(fā)表于 06-06 15:39 ?8次下載

    變換綜合示例_OpenCV3編程入門-源碼例程

    OpenCV3編程入門-源碼例程全集-變換綜合示例,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:02 ?18次下載

    簡述基爾霍夫電流定律_基爾霍夫電流定律公式_基爾霍夫電流定律教案

    基爾霍夫電流定律也稱為節(jié)點電流定律,于1845年由德國物理學(xué)家G.R.基爾霍夫(Gustav Robert Kirchhoff,1824~1887)提出,內(nèi)容是電路中任一個節(jié)點上,在任一時刻,流入節(jié)點的電流之和等于流出節(jié)點的電流之和。
    發(fā)表于 08-15 16:56 ?2.3w次閱讀
    <b class='flag-5'>簡述</b>基爾<b class='flag-5'>霍夫</b>電流定律_基爾<b class='flag-5'>霍夫</b>電流定律公式_基爾<b class='flag-5'>霍夫</b>電流定律教案

    基爾霍夫電流定律例題詳解_基爾霍夫電壓定律例題詳解

    1845年,剛從德國哥尼斯堡大學(xué)畢業(yè)、年僅21對的基爾霍夫在他的第一篇論文中提出了適用于網(wǎng)絡(luò)狀電路計算的兩個定律,即著名的基爾霍夫定律。這兩個定律分為基爾霍夫第一定律和基爾霍夫第二定律
    發(fā)表于 08-15 17:37 ?25w次閱讀
    基爾<b class='flag-5'>霍夫</b>電流定律例題詳解_基爾<b class='flag-5'>霍夫</b>電壓定律例題詳解

    基爾霍夫定律簡單例題_基爾霍夫定律經(jīng)典例題

    基爾霍夫第一定律為基爾霍夫電流定律,第二定律為基爾霍夫電壓定律。
    發(fā)表于 08-15 19:51 ?13.9w次閱讀
    基爾<b class='flag-5'>霍夫</b>定律簡單例題_基爾<b class='flag-5'>霍夫</b>定律經(jīng)典例題

    opencv變換的原理

    變換(Hough Transform)是圖像處理中的一種特征提取技術(shù),該過程在一個參數(shù)空間中通過計算累計結(jié)果的局部最大值得到一個符合該特征的集合作為
    發(fā)表于 12-04 14:39 ?5712次閱讀
    opencv<b class='flag-5'>霍</b><b class='flag-5'>夫</b><b class='flag-5'>變換</b>的原理

    一文解讀經(jīng)典變換(Hough Transform)

    引言 本文講述變換的一些內(nèi)容,并加入一些理解性東西,參考了部分博客等相關(guān)性內(nèi)容。希望能對變換
    的頭像 發(fā)表于 04-22 11:17 ?1.1w次閱讀
    一文解讀經(jīng)典<b class='flag-5'>霍</b><b class='flag-5'>夫</b><b class='flag-5'>變換</b>(Hough Transform)

    基于OpenCV經(jīng)典變換的一些內(nèi)容

    本文主要講述的是變換的一些內(nèi)容,并加入一些在生活中的應(yīng)用,希望能對讀者對于變換的內(nèi)容有所
    的頭像 發(fā)表于 07-06 10:43 ?1858次閱讀
    RM新时代网站-首页