這是一個複雜設置的更具體的問題。我已經計算所有1像素的距離,以原始圖像的其最近0像素,並轉化到與局部最大值如下所示的圖像:如何用Matlab連接圖像中的斷開點?
我用下面的代碼,以提取的局部最大值從這個變換後的矩陣:
loc_max = imregionalmax(loc,4);
figure;imshow(loc_max)
loc_max給出那些局部最大點的斷開點。嘗試了一系列連接它們的方式,但並未按照它應該做的那樣工作。
這裏是我的一個想法:
[yy xx]=find(loc_max ==1);
d = [];
dmin = [];
idx = [];
for i = 1: size(yy,1)
for j = 1:size(xx,1)
if i ~= j
d(j) = sqrt(sum(bsxfun(@minus,[yy(j) xx(j)],[yy(i) xx(i)]).^2,2));
%calculate the distance between current 1-pixel in loc_max and all other local maxima pixels in loc_max.
end
end
[dmin(i),idx(i)] = min(d(:));%find the minimum distance between current 1-pixel to others
end
我試圖找到在loc_max最近的1個像素的loc_max目前的1像素,然後將它們連接起來。但這還不是解決方案。因爲如果前一個像素是當前像素的最近像素,它將不會連接到其下一個1像素。
此外,我想保留這些0像素的像素信息沿兩個斷開的1像素之間的連接線。我希望能夠在以後重建這個簡化的框架中的整個圖像。
任何幫助將不勝感激!
侵蝕和擴張的! –
謝謝,與imdilate嘗試,不按我想要的那樣工作。 – Orangeblue
這是一個非常有限的信息量 –