|  從20世紀70年代起就有不少專家提出了一些有效的亞像素邊緣定位的方法,如插值法、灰度矩法和一些組合的算法等。本文在前輩的基礎上描述一種圖像亞像素邊緣檢測方法,用Sobel算子和多邊形逼近的方法實現亞像素級邊緣定位。 亞像素的邊緣提取  歡迎關注微信公眾號:“智能算法”。 在進行直線以及圓弧基元的分割的前提,是要將亞像素的邊緣提取出來,這一部分內容,我們可以先提取像素級的邊緣,在利用擬合曲面來提取亞像素的邊緣。 利用sobel算子,我們可以很容易的提取出圖像的邊緣,這里利用了非最大值抑制,雙滯濾波器,達到邊緣的準確提取,并且保留梯度圖像,后續(xù)步驟需要用到。如下圖所示: 截取圖中一小部分,其中的一些邊緣在8領域內是可約的,什么是可約呢,就是去掉其中一點曲線仍然是連續(xù)的,如果曲線可約,將不方便后續(xù)的處理。這里就利用形態(tài)學細化,方便后續(xù)亞像素的提取,細化后的結果如下圖所示。 利用梯度圖像中邊緣點的梯度方向,而亞像素級的最大值無非就是在梯度方向所在的直線上,利用曲面擬合,以及擬合后曲面和直線的交線,在求出交線的極值,就可以得到該點的亞像素表示。如下圖所示,為提取后的亞像素點。 ramer的多邊形逼近 首先,在輪廓的起點和終點之間建立一條線段,然后計算所有輪廓控制點到線段的距離,并從中選出距離最大的控制點。如果此距離比指定的閾值大,那么在對應最大距離控制點處將當前線段再次細分成兩段。在新得到的線段上重復進行上述處理。如下圖所示: 輪廓段的融合 根據相鄰輪廓段的三個分割點不可能處在同一直線上這一前提擬合一個近似圓,然后計算該圓與對應輪廓段之間的最大偏差。如果偏差比兩個輪廓段與對應逼近線段的最大距離還要小,那么這兩條輪廓段就標記為合并處理對象。否則繼續(xù)對下對輪廓段進行同樣的處理,經過多次迭代直到沒有合并處理的對象為止。 下圖是對基元分割后的結果,白線部分是直線基元,黑色線段是圓弧基元。 | 
|  |