【问题标题】:Matlab image processing build region connectionsMatlab 图像处理建立区域连接
【发布时间】:2014-02-19 08:03:37
【问题描述】:
【问题讨论】:
标签:
algorithm
matlab
image-processing
【解决方案1】:
在我的脑海中,快速而肮脏的嵌套循环方法:
对于区域ii=1:n,运行区域ii 到bwdist 的掩码以生成距离变换。对于区域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