精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA圖像處理之Canny邊緣檢測

FPGA開源工坊 ? 來源:FPGA開源工坊 ? 2023-11-17 09:10 ? 次閱讀

在邊緣檢測算法里面Sobel是比較簡單的一個算法,但是其檢測出來的邊緣往往是比較粗的,效果不是很好,因為我們最理想的邊緣肯定就是一個寬度為1的細線。

Canny算法在此基礎上進行了改進,通過使用邊緣的梯度信息進行非最大值抑制(NMS)和利用雙閾值,這些措施消除了假性邊緣,提高了邊緣檢測的效果。

Canny邊緣檢測分為以下幾個部分:

高斯濾波

Sobel邊緣檢測

非最大值抑制

雙閾值邊緣檢測

弱邊緣連接

高斯濾波和Sobel邊緣檢測在之前的文章里面介紹過,在這里不再贅述。

可以參見:FPGA圖像處理--Sobel邊緣檢測FPGA圖像處理--高斯模糊(一)FPGA圖像處理--高斯模糊(二)這三篇文章。

在本篇中為大家介紹Canny邊緣檢測中的NMS部分。

我們通過Sobel的計算可以獲得兩個信息,分別是梯度的幅值和方向。

梯度的幅值可以表示為:

因為我們想在FPGA中實現Canny算子,而根號對FPGA來說消耗的資源是比較多的,因此我們選擇另一種幅值的表示方式:

梯度的方向可以表示為:

接下來就可以通過梯度的幅值和方向來做NMS了。

我們在做完Sobel之后得到的幅值和方向也就是下面一幅示意圖

ec822e8a-84e5-11ee-939d-92fbcf53809c.png

每一個點都有其方向和梯度的值。

假如我們Sobel檢測的閾值設置的為90,那么在上面示意圖中左上角的99,108,110,97這幾個點都會被看做邊緣部分,在Canny中會對這個做NMS,首先看到99他的梯度方向向下,然后梯度方向下一個值是110比99大,那么就認為99這個點不是邊緣,110比他更靠近邊緣部分,這樣99就被抑制掉了,邊緣也能夠被細化。對于108來說,他的梯度方向下一個值是77,比108小,那么108就不會被抑制。通過這種方式就能完成非最大值抑制。

在上圖里面展示的梯度方向只有0,45,90這些角度,然而在實際計算中不可能只有這些角度的,所以我們要進行插值計算,接下來就說明一下如何進行插值計算。

ec96f810-84e5-11ee-939d-92fbcf53809c.png

以任意一點為坐標原點,如上圖中的5這個點,他周圍有一個3*3的矩陣,然后他的梯度方向是紅色箭頭的方向。這個方向不在X和Y軸的45°方向(PS:我們規定圖像向下為Y軸正方向,向右為X軸正方向,象限為順時針方向)。

因為其不在45°方向,那么就不能直接將5的梯度和1,9的梯度進行比較來確定是否對5這點進行抑制,那么我們就需要使用插值的方式來生成兩個點(亞像素點)進而進行判斷。

在上圖里面可以看到GX和GY的方向相同并且GX大于GY,所以我們分別選取6 9和1 4這四個點來進行插值以生成兩個亞像素點。

在之前的介紹里面我們知道梯度的方向是用arctan來表示的,但是這個計算比較復雜,我們也僅僅是為了插值計算,所以并不需要進行arctan的計算,只需要拿到GX和GY的值即可。

因為GX大于GY,所以讓GY/GX這樣得到一個小于1的值,記作weight。那么我們就可以得到一個比例關系:

point1 = 9*weight +6 *(1 - weight)

point2 = 1*weight+4* (1 - weight)

這樣就能得到兩個亞元素點,通過比較5這個點和point1以及point2的大小就可以決定是否對其進行抑制。

通過將GX和GY的關系可以分為以下四種情況:

|GX| >|GY| 并且 GX和GY同號

|GX|>|GY|并且 GX和GY異號

|GX|

|GX|

其他幾個方向的分析就不贅述了,可以直接看代碼里面的實現:

代碼里面矩陣的坐標關系如下圖:

eca77b86-84e5-11ee-939d-92fbcf53809c.png

python實現的參考模型如下:

ecaea1b8-84e5-11ee-939d-92fbcf53809c.png

可以根據上面的坐標對應關系來分析剩下的幾種情況。

來看一下實現的效果:

可以明顯看到nms之后的結果相對于sobel之后的結果要細化很多。

Python的NMS參考模型介紹完了,之后就是Verilog的RTL怎么實現它,今天就寫到這里,休息。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21678

    瀏覽量

    602022
  • 圖像處理
    +關注

    關注

    27

    文章

    1282

    瀏覽量

    56657
  • 邊緣檢測
    +關注

    關注

    0

    文章

    92

    瀏覽量

    18202

原文標題:FPGA圖像處理--Canny邊緣檢測(一)

文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Canny雙閾值邊緣檢測和弱邊緣連接詳解

    在上一篇FPGA圖像處理--Canny邊緣檢測(一)里介紹了
    的頭像 發表于 11-18 17:07 ?2475次閱讀

    基于FPGA的實時邊緣檢測系統設計,Sobel圖像邊緣檢測FPGA圖像處理

    的主要特征提取手段 。由于實時視頻圖像邊緣檢測需要處理的數據量非常大,所以采用一般的軟件方法實現起來處理速度慢,無法滿足實時性的要求。 隨
    發表于 05-24 07:45

    基于Canny邊緣檢測算子的圖像檢索算法

    【摘要】:針對依賴傳統Canny算子的基于邊緣圖像檢索系統所存在的不足,提出一種基于Canny邊緣檢測
    發表于 04-24 10:03

    基于FPGA的數字圖像處理中的邊緣檢測系統

    `基于FPGA的數字圖像處理領域的邊緣檢測系統。該系統實現了從24位真彩色圖片的存儲到VGA顯示邊緣
    發表于 06-26 13:36

    【DragonBoard 410c試用體驗】OpenCV中canny算子邊緣檢測

    `具體介紹之前,先來一起看看邊緣檢測的一般步驟 濾波:邊緣檢測的算法主要是基于圖像強度的一階和二階導數,但導數通常對噪聲很敏感,因此必須采用
    發表于 09-11 23:24

    關于canny算子邊緣檢測的問題

    本帖最后由 豆吖豆 于 2017-4-4 23:14 編輯 grd=edge(Egray,'canny',0.09,'both');大神門 問一下這個后面的0.09和both什么意思是指的是Egray圖像的上下大小還是,另外可以的話能大概說說這個
    發表于 04-04 22:27

    基于FPGA的Sobel邊緣檢測的實現

    我們在此基礎上修改,從而實現,基于FPGA的動態圖片的Sobel邊緣檢測、中值濾波、Canny算子邊緣
    發表于 08-29 15:41

    圖象處理中的哈夫變換和Canny邊緣檢測算法

    圖象處理中的邊緣檢測------canny算子
    發表于 03-16 06:48

    Labview圖像處理——邊緣檢測

    。Sobel算子檢測方法對灰度漸變和噪聲較多的圖像處理效果較好,sobel算子對邊緣定位不是很準確,圖像
    發表于 12-01 12:16

    基于Canny 法的紅外小目標邊緣檢測方法

    從紅外圖像的特點出發,基于Canny算法進行了目標邊緣檢測。首先,對源圖像進行小波分解和重構,對圖像
    發表于 05-27 15:02 ?12次下載

    基于Canny邊緣檢測算子的圖像檢索算法

      針對依賴傳統Canny算子的基于邊緣圖像檢索系統所存在的不足,提出一種基于Canny邊緣
    發表于 02-11 11:22 ?28次下載

    基于FPGA圖像邊緣檢測

    基于FPGA圖像邊緣檢測 引言     圖像邊緣
    發表于 01-14 11:07 ?1861次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>圖像</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>

    實時圖像邊緣檢測的設計及FPGA實現

    文中將FPGA應用于實時圖像邊緣檢測系統,從而實現動態實時圖像邊緣
    發表于 12-22 17:06 ?39次下載
    實時<b class='flag-5'>圖像</b><b class='flag-5'>邊緣</b><b class='flag-5'>檢測</b>的設計及<b class='flag-5'>FPGA</b>實現

    canny邊緣檢測

    《OpenCV3編程入門》書本配套源代碼canny邊緣檢測
    發表于 06-06 15:20 ?2次下載

    Canny圖像算法仿真驗證原理與實現

    先讀為快,以結果為導向,本期介紹Canny圖像算法仿真驗證,后續將介紹canny算法原理與實現,歡迎持續關注,公眾號設置星標,不錯過每一次推送~ 一、簡要說明 1.1 算法流程 Canny
    的頭像 發表于 10-15 09:10 ?1873次閱讀