我有一个图像。我想把坐标按顺序排列,这样图像就可以重画了。图像可能很复杂。我想得到采样的角坐标来重新绘制图像的轮廓。
尝试1:corner
函数
我试图在matlab中使用corner()
来检测角点,但它没有给出确切的点。角落在外面。原始图像附在下面。在
我的拐角检测代码是:
It=rgb2gray(I);
Itt=im2bw(It);
Itt1=corner(Itt);
imshow(Itt);
hold on
plot(Itt1(:,1), Itt2(:,2), 'r*');
问题corner
:如果你缩放图像,你会发现一些角点不在边界上。所以,请提出一些有效的好的工作方法。在
尝试2:bwtraceboundaries
我还尝试使用bwtraceboundaries
和corners根据bwtraceboundaries
输出对角点进行排序,但是没有准确地检测到角点。在
问题:您能否建议我如何检测角点,或者是否有其他方法从图像中提取采样角点,以便重新绘制轮廓?在
您可以使用^{} 来实现您想要的。它以单元数组的形式返回所有已排序的边界位置:
如果只想获取角点,可以通过检查点是否位于下一个点和上一个点的中间来手动过滤掉这些角点,如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐