随机对象检测matlab

时间:2013-11-29 11:26:06

标签: matlab image-processing object-detection

我想使用matlab生成随机图像,其中包含要检测的对象和随机位置的杂波图像。然后我想在杂波图像下检测这个随机生成的对象,并根据对象的形状勾勒出对象的轮廓。我试图在mathworks上寻找代码但我能找到的只是检测一个对象并在检测到的对象周围绘制一个矩形框。我想要做的是检测对象并绘制检测到的对象的轮廓。

任何人都可以建议我如何做到这一点。感谢

2 个答案:

答案 0 :(得分:1)

您可能想看看“Marching Squares”算法。一个记录良好的示例位于此处:http://devblog.phillipspiess.com/2010/02/23/better-know-an-algorithm-1-marching-squares/
然后,您从算法中获得的坐标可以再次用作将轮廓像素放置在另一个图像中的位置的坐标。

不幸的是,我无法为您提供任何Matlab代码(只是将其移植到Fortran),但考虑到算法的讨论,应该可以直接实现它。
根据我使用“游行广场”的经验提出一些建议:

  1. 为便于编程算法,请先将图像转换为黑/白图像。这提供了一个简洁的轮廓来检测。
  2. 初始位置对于检测轮廓的过程的成功至关重要。您可能想要使用某种过滤函数来确定对象(即群集)的近似中心。从那里你走向一个方向(北,南,西,东),直到你到达边界并从那里开始算法。
  3. 编辑:您在MatlabCentral中看过isocontour吗? http://www.mathworks.com/matlabcentral/fileexcahange/30525-isocontour

答案 1 :(得分:1)

尝试使用图像处理工具箱中的activecontour功能。