如何从位图图像中提取对象?

时间:2009-10-16 10:42:41

标签: c# image-processing

我有一个黑色背景的位图和一些白色的随机对象。如何识别这些单独的对象并从位图中提取它们?

4 个答案:

答案 0 :(得分:1)

特征提取是一个非常复杂的主题,您的问题并没有暴露您面临的问题以及您想要提取的对象的性质。

通常morphological operators会对此类问题有所帮助(减少噪音,填补空白......)我希望您已经发现AForge。在你重新发明轮子之前看看它。形状识别或blob分析是你可以在谷歌看看的嗡嗡声作品,以获得解决问题的一些想法。

答案 1 :(得分:1)

如果像素为黑色或白色,则在图像中找到连接的白色像素坐标应该非常简单。开始逐行扫描像素,直到找到白色像素。跟踪您找到它的位置,创建一个新的数据结构来保存其连接的对象。从该像素到其周围像素进行递归搜索,将每个连接的白色像素的坐标添加到数据结构中。当您的搜索无法找到任何更多连接的白色像素时“结束”该对象。返回到您开始的位置并继续扫描像素。每次找到白色像素时,都会看到它是否位于您现有的“对象”中。如果没有,请创建一个新对象并重复搜索,随时添加连接的白色像素。完成后,您应该拥有一组表示连接的白色像素集合的数据结构。这些是你的对象。如果您需要确定它们是什么或将它们简化为形状,您需要进行一些谷歌搜索 - 我无法帮助您。自从我参加计算机视觉课程以来,已经太久了。

答案 2 :(得分:0)

CodeProject上有几篇关于这些图像过滤器的文章。不幸的是,我不知道它们是如何工作的(如果我这样做的话,那么答案可能会太久了; P)。

答案 3 :(得分:0)

1)使物体看起来“更好”的形态学操作
2)分段
3)分类

每个主题都很重要。有简单的方法,但你的描述不是太详细......