使用"掩码"分割图像

时间:2015-07-08 08:24:36

标签: c++ opencv

我是opencv的新手,我想就如何进行图像去噪和分割提出一些建议。

我目前正致力于像kinect一样的对象识别。在这个过程的最后,我得到了这种类型的图片:

enter image description here

如果我推荐使用另一种颜色,粉红色是完全随意的)

在这种情况下,我想:

  1. 对图片进行去噪。

  2. 将图片中的不同对象分成多个图片,每个对象一张图片。

  3. 关于1: 我知道几乎没有基于频率和模式主要滤波的噪声滤波,是否有可能过滤掉不大的物体#34;足够?

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

  1. 将所有粉红色设置为黑色(背景),将所有其他颜色设置为白色(前景)。
  2. 使用findContours()查找每个对象的所有轮廓,例如3个。
  3. 根据每个对象的轮廓信息,您可以选择所需的任何对象。您还可以通过检查轮廓区域来过滤掉小物体。

答案 1 :(得分:1)

@herohuyongtao提出的方案是合理的。如果您可以使用OpenCV 3.0,我建议connectedComponents()而不是findControus()。对象的区域由CC_STAT_AREA统计信息返回。在您的情况下,左上角实际上有大约7个连接组件用于此噪音。在最小可能区域设置一些合理的阈值,对于简单的情况就足够了。

答案 2 :(得分:0)

感谢Mikhail和herohuyongtao,我设法做了我想做的事。

此链接也对我有很大帮助:

http://bytefish.de/blog/extracting_contours_with_opencv/

干杯!