2017-05-28 369 views
0

我正在從事圖像分割,邊緣檢測,以及在Matlab中通過重建打開和關閉。我試圖在非常嘈雜的圖像中識別圓形物體,目的是用這些圓形物體的邊緣創建一個蒙版,然後將這種蒙版疊加在原始圖像中。在通過重建應用打開和關閉以及分水嶺函數以識別對象的邊界以及原始圖像的二進掩模之後,我能夠獲得對應於全圓和半圓的邊緣。儘管識別出的整個圓圈很少,而且大多數情況下只有半個圓圈,但該方法會濾除圖像中的大部分噪音。Matlab圖像分割和圓形識別

試圖獲得完整的圓的邊緣,我用canny函數進行邊緣檢測。該函數獲取大多數圓形對象的完整邊,但也會繪製圖像中噪點的邊緣。這不允許我創建一個好的蒙版以疊加在原始圖像中。

接下來的問題是,如果有任何有效的方法來擺脫Canny函數拾取的噪聲,或者如果可以對某些半徑的對象執行Canny函數邊緣檢測,那麼只需要我想要的圓形對象以確定具有特定的半徑。附加的原始圖像是什麼導致圖像中的噪點是黑暗的垂直帶或陰影以及圓圈頂部的明亮光束。附:由於破損的圓形邊緣或背景噪音,用於圓形檢測的matlab函數「imfindcircles」不適用於我的圖像。圓形對象和暗垂直線和亮點的

原始圖像作爲噪聲

+1

可以做hough變換。邊緣的嘈雜部分將被過濾。 –

+0

你好門迪。我提到的imfindcircles函數是matlab中的hough變換函數。除非邊緣被完全畫出並且圓圈填充了一個色調,否則它不會識別這些圓圈。也許我可以使用另一種不涉及hough變換的圓檢測方法? – user27407

回答

0

可以預處理應用霍夫變換前的給定圖像。你得到的問題是因爲圖像中亮度的不均勻分佈。您可以在邊緣檢測和Hough變換之前應用一些濾波技術,如同態濾波。同態濾波技術對圖像中的亮度進行歸一化處理並增加對比度。一旦在此圖像上應用Canny邊緣檢測,您可以使用一些邊緣鏈接算法來填充檢測到的邊緣之間的間隙,以使用Hough變換獲得更好的性能。

的方法是這樣的,

圖像 - >同態濾波 - > Canny邊緣檢測 - >邊緣連接 - > Hough變換