我想使用matlab生成随机图像,其中包含要检测的对象和随机位置的杂波图像。然后我想在杂波图像下检测这个随机生成的对象,并根据对象的形状勾勒出对象的轮廓。我试图在mathworks上寻找代码但我能找到的只是检测一个对象并在检测到的对象周围绘制一个矩形框。我想要做的是检测对象并绘制检测到的对象的轮廓。
任何人都可以建议我如何做到这一点。感谢
答案 0 :(得分:1)
您可能想看看“Marching Squares”算法。一个记录良好的示例位于此处:http://devblog.phillipspiess.com/2010/02/23/better-know-an-algorithm-1-marching-squares/
然后,您从算法中获得的坐标可以再次用作将轮廓像素放置在另一个图像中的位置的坐标。
不幸的是,我无法为您提供任何Matlab代码(只是将其移植到Fortran),但考虑到算法的讨论,应该可以直接实现它。
根据我使用“游行广场”的经验提出一些建议:
编辑:您在MatlabCentral中看过isocontour吗? http://www.mathworks.com/matlabcentral/fileexcahange/30525-isocontour
答案 1 :(得分:1)
尝试使用图像处理工具箱中的activecontour功能。