簡體   English   中英

非最大抑制

[英]Non-max suppression

我們已經知道你可以用atan(dy/dx)得到梯度方向,這是與邊緣正交的方向。 現在我們有一個功課,我們應該將這個方向離散化為四個等級(x和y方向以及兩個對角線),然后檢查最佳匹配方向的兩個像素鄰居以進行非最大抑制

我沒有完全得到解決方案。 顯然我們有四個案例:

  1. abs(angle) < pi/8 ,所以漸變(粗略)指向x方向,因此我們檢查img(i, j-1)img(i, j+1) (假設圖像原點在頂部剩下)

  2. angle > pi/8 && angle <= 3*pi/8 ,因此漸變指向右上角。 現在我認為我們需要檢查img(i-1, j+1)img(i+1, j-1)但我們檢查img(i-1, j-1)img(i+1, j+1)似乎是正交對角線。

另外兩個案例是相同的。 我試圖改變這個但是邊緣看起來很奇怪所以這似乎是正確的但我不明白為什么。

誰可以給我解釋一下這個?

非最大抑制是一種消除不在重要邊緣的點的方法。 在第一種情況下,如果梯度在給定點接近零度,則意味着邊緣在北方或南方,如果此點的大小大於該點,則該點將被視為在邊緣上左右兩點的大小(如示例所示)。 在你的第二種情況下,你正在檢查45度的漸變,所以邊緣是135度,所以你保持點,如果它大於沿着梯度方向的點,即(-1,-1)和(1 ,1)。 旋轉坐標系不會影響這一點。

在此輸入圖像描述

這是Canny邊緣檢測過程中使用的非最大值抑制的python實現。

他們專注於北部和南部,東北和西南,東部和西部,以及東南和西北。 然后決定要保留哪些值。

希望它能幫助需要NMS的人找到更好的優勢。

對於原始問題可能會遲到,但以下鏈接可能會幫助任何努力理解非最大抑制的人。

非最大抑制的Java演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM