MATLAB:pdist,找到二进制图像中最小成对距离的像素位置

时间:2016-04-27 22:44:35

标签: matlab binary distance

我有一个二进制图像,并找到了使用

连接两个附近感兴趣区域/连接组件的最小距离
min(min(pdist2(CCstats(1).PixelList,CCstats(2).PixelList)))

我还需要获得这个距离的这些末端的坐标/这两个感兴趣区域之间最邻近的像素

我计划沿这个距离划一条线。我打算使用类似的东西:

x=linspace(coord1(1), coord2(1),1000);
y=linspace(coord1(2), coord2(2),1000);
index=sub2ind(size(image),round(y),round(x));
image(index)=1;

有关如何找到这些坐标的任何建议吗?

1 个答案:

答案 0 :(得分:0)

您需要min的第二个输出(与ind2sub结合使用)来确定与最小距离对应的pdist2矩阵的行/列。

distances = pdist2(CCstats(1).PixelList, CCstats(2).PixelList);
[mindist, minind] = min(distances(:));

%// Now convert this linear index into index1/index2 into your pixel lists
[index1, index2] = ind2sub(size(distances), minind);

%// Now grab the coordinates using these index values
coord1 = CCstats(1).PixelList(index1,:);
coord2 = CCstats(2).PixelList(index2,:);