首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从点识别多个(图形)对象的边缘

从点识别多个(图形)对象的边缘
EN

Stack Overflow用户
提问于 2012-12-09 06:46:12
回答 2查看 305关注 0票数 3

我有一个应用程序,可以识别摄像头图像中的运动。它会产生类似下面这样的结果...

黑色区域表示运动。这在很大程度上是以像素为单位进行的(尽管考虑了附近的像素)

所以..。现在我已经得到了每个像素的移动true/false,我需要使用该信息来识别对象轮廓。

我想要的是下面这样的东西。

轮廓不一定要精确,我可以接受边界框。还有一些噪音区域,如果我给你看两者结合起来的话会更明显。

正如你所看到的,物体外面有几个“移动”像素。大概,我会通过指定一个对象的最小面积来消除它们。

那么,有什么算法可以识别物体的边缘呢?理想情况下,我将能够使用这些信息来计算每个对象的大致中心。

注意:正如@mmgp所提到的,上面的图片都是全RGB的,甚至是黑白的。这是由于我生成导出图像的方式所致。在内部,它是一个位数组。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-09 10:35:13

对于数学形态学来说,这似乎是一个完美的任务。要删除小对象,在这种情况下,是一种形式的噪声,执行形态学开放的区域。在你的问题中,面积很容易估计,因为感兴趣的区域比不想要的区域大得多。现在,您还希望消除大型对象中的孔(请注意,在您的示例中有一些孔)。要做到这一点,您需要执行一个称为空洞填充的操作,该操作将简单地丢弃那些从图像背景中无法到达的点。此时,您可以继续检测对象的质心,但如果要使对象的边界更加均匀,可以使用具有较小结构元素的形态扩张,或者可能使用形态闭合,以尽可能保留对象的更多部分。

这些任务在Matlab中的执行方式如下:

代码语言:javascript
复制
f = imread('http://i.stack.imgur.com/DexHs.png');
% The PNG is in RGB, but it actually describes a binary image.    
f = ~im2bw(f, 0);
g = bwareaopen(f, 100); % 100 is the maximum area for unwanted objects here
h = imfill(g, 'holes');
l = bwlabel(h);
cent = regionprops(l, 'centroid');

这会导致:

两条闭合的白色曲线是其余对象的边界,在黄色中可以看到它们的质心。如果您想要一个“更软”的边界,如本答案的初始注释中所述:

代码语言:javascript
复制
h1 = imclose(h, strel('disk', 3));

我看到您将其标记为.net,但我希望这些工具在一些.net包中随时可用,因为它们非常基础和常见。

票数 1
EN

Stack Overflow用户

发布于 2012-12-18 21:06:39

我的建议是使用emgu (opencv)来完成这些任务,它可能比matlab更复杂,但速度更快。

OpenCV为您实现了侵蚀和扩张形态学操作:

http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=morphology#dilate

http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=morphology#erode

或者适用于更多通用形态学运算的

http://docs.opencv.org/modules/imgproc/doc/filtering.html?highlight=morphology#morphologyex

它还具有findContours功能,您可以将其视为斑点检测器。在您的情况下,您可以向它提供您的第一张图像(可能在经过一些去噪预处理之后),它将返回这些形状。如果需要,这些返回的形状很容易按区域过滤。

findContours文档:

http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#findcontours

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13782713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档