[英]Matlab image processing build region connections
我正在使用MATLAB進行圖像處理,並且具有帶有分段區域的圖像。 這是一個示例圖片: http : //www.mathworks.de/help/releases/R2013b/images/examples/ipexroundness_04.png
如何找到從一個區域到最近鄰居的最小距離? 我不需要完整的實現,但是任何人都可以引用一種算法,該算法可以找到最鄰近的區域並計算該區域的最小距離和最接近的點。
我想使用此信息來連接圖像區域,即在圖像區域之間建立橋梁。
煩惱的是,快速而骯臟的嵌套循環方法:
對於區域ii=1:n
,通過bwdist
運行區域ii
的掩碼以生成距離變換。 對於區域jj=1:n
,使用區域jj
的掩碼索引到該距離變換。 這樣就可以獲取區域jj
中每個像素與區域ii
最接近的像素之間的距離-找到最小值(及其坐標)並將其填充在某種成對的距離矩陣中。 重復進行直到完成,然后處理成對距離矩陣以找出要連接的區域。
編輯:到此為止,我想我也可以將某些東西敲在一起-這是一個粗糙的版本,它使用二進制圖像並將潛在連接點的距離,x和y坐標作為成對矩陣返回:
function [d x y] = regiondist(img)
label = bwlabel(img);
n = max(label(:));
[x y d] = deal(zeros(n));
for ii = 1:n
dt = bwdist(label == ii);
for jj = 1:n
if ii == jj
continue
end
reg = (label == jj);
[mindist idx] = min(dt(reg));
d(ii, jj) = mindist;
[ry rx] = find(reg);
x(ii, jj) = rx(idx);
y(ii, jj) = ry(idx);
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.