我有一个二进制图像,并找到了使用
连接两个附近感兴趣区域/连接组件的最小距离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;
有关如何找到这些坐标的任何建议吗?
答案 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,:);