簡體   English   中英

查找像素到邊緣的距離

[英]Finding the Distance from A Pixel to an Edge

我正在嘗試編寫一種算法,以查找從圖像中每個像素到黑色邊緣的最小距離。 下面是一個示例圖像:

臉部邊緣

這是當前的算法:

從像素(R,C)開始,我檢查(R,C)周圍距離R,C d = 1像素的每個像素。 如果我沒有擊中黑色像素,那么我會檢查(R,C)周圍的每個像素,它們距R,C d = 2像素...並繼續(隨着d的增加),直到找到黑色像素並然后我從R,C計算出歐幾里得距離。 請注意,我要確保檢查的像素不超過圖像的邊界。

但是,因為我要對每個像素執行此操作,所以該算法非常慢。

有人知道這樣做的更快方法嗎? 任何幫助將不勝感激。 我使用C ++和OpenCV進行編碼,因此優先選擇使用這些算法的任何算法。

您要做的是找到圖像的距離變換 您可以在distanceTransform函數中找到OpenCV實現。 您會發現它非常快。

您可以為該作業使用多線程,這會加快速度。

暫無
暫無

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

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