亞畫素邊緣的直線及圓弧的基元分割

2021-07-23 07:41:37 字數 1339 閱讀 9704

從20世紀70年代起就有不少專家提出了一些有效的亞畫素邊緣定位的方法,如插值法、灰度矩法和一些組合的演算法等。本文在前輩的基礎上描述一種影象亞畫素邊緣檢測方法,用sobel運算元和多邊形逼近的方法實現亞畫素級邊緣定位。

亞畫素的邊緣提取

在進行直線以及圓弧基元的分割的前提,是要將亞畫素的邊緣提取出來,這一部分內容,我們可以先提取畫素級的邊緣,在利用擬合曲面來提取亞畫素的邊緣。

利用sobel運算元,我們可以很容易的提取出影象的邊緣,這裡利用了非最大值抑制,雙滯濾波器,達到邊緣的準確提取,並且保留梯度影象,後續步驟需要用到。如下圖所示:

擷取圖中一小部分,其中的一些邊緣在8領域內是可約的,什麼是可約呢,就是去掉其中一點曲線仍然是連續的,如果曲線可約,將不方便後續的處理。這裡就利用形態學細化,方便後續亞畫素的提取,細化後的結果如下圖所示。

利用梯度影象中邊緣點的梯度方向,而亞畫素級的最大值無非就是在梯度方向所在的直線上,利用曲面擬合,以及擬合後曲面和直線的交線,在求出交線的極值,就可以得到該點的亞畫素表示。如下圖所示,為提取後的亞畫素點。

ramer的多邊形逼近

首先,在輪廓的起點和終點之間建立一條線段,然後計算所有輪廓控制點到線段的距離,並從中選出距離最大的控制點。如果此距離比指定的閾值大,那麼在對應最大距離控制點處將當前線段再次細分成兩段。在新得到的線段上重複進行上述處理。如下圖所示:

輪廓段的融合

根據相鄰輪廓段的三個分割點不可能處在同一直線上這一前提擬合乙個近似圓,然後計算該圓與對應輪廓段之間的最大偏差。如果偏差比兩個輪廓段與對應逼近線段的最大距離還要小,那麼這兩條輪廓段就標記為合併處理物件。否則繼續對下對輪廓段進行同樣的處理,經過多次迭代直到沒有合併處理的物件為止。

下圖是對基元分割後的結果,白線部分是直線基元,黑色線段是圓弧基元。

亞畫素邊緣提取的例子

1.pkma75 資源積分 1分 備註 pdf格式,用曲線擬合的方法計算亞畫素,程式設計易實現,具有較強的實用價值 2.上 傳 者 kuailechengzi 資源積分 1分 備註 亞畫素邊緣檢測方法,此種方法先經過傳統模板運算元確定邊緣的大致位置,然後用曲線擬合方法求出邊緣的精確位置,經過粗 精兩...

直線插補和圓弧插補的區別

插補 interpolation 即工具機數控系統依照一定方法確定刀具運動軌跡的過程。也可以說,已知曲線上的某些資料,按照某種演算法計算已知點之間的中間點的方法,也稱為 資料點的密化 數控裝置根據輸入的零件程式的資訊,將程式段所描述的曲線的起點 終點之間的空間進行資料密化,從而形成要求的輪廓軌跡,這...

KDL 直線插補 圓弧插補的應用

之前因為公司需要,要開發scara機械手,因為是自己的控制器,支援插補模式,剩下的就是要開發各種指令 圓弧插補,直線插補等等.大家都知道scara相對來說比六軸的要簡單很多,但是這個演算法也把自己弄得神魂顛倒,路徑很好計算,但配合著各種速度曲線就麻煩了,比如常見的 梯形加速,半梯形,s型 矩形.這個...