c++ - 使用 "mask"分割图像

标签 c++ opencv

我是opencv新手,想请教一下如何进行图像去噪和分割。

我目前正在使用类似 kinect 的对象识别。在这个过程结束时,我得到了这种类型的图片:

enter image description here

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

在这种情况下,我想:

  1. 对图片进行降噪。

  2. 将图片中的不同物体拆分为多张图片,每个物体一张图片。

关于 1: 我知道很少有主要基于频率和模式过滤的噪声过滤,是否可以过滤不够“大”的对象?

最佳答案

你可以试试这个:

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

关于c++ - 使用 "mask"分割图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287229/

相关文章:

c++ - 我可以在多线程 C++ 中安全地使用 int 吗?

c++ - C++0x 中 std::make_tuple 的问题

c++ - 为什么为我的对象类编译标准优先级队列失败?

opencv - 带有OpenCV的视频捕获卡(类似网络摄像头)

python - 为什么python会引发错误:AttributeError: 'numpy.ndarray'对象没有属性 'append'?

c++ - Mat::checkVector 在 OpenCV 中做了什么?

c++ - 派生类构造函数初始化列表时,基类没有默认构造函数

iphone - IOS/iPad/iPhone 的最大速度

opencv - 从opencv中的视差图生成3D图像

c - 释放 OpenCV IplImage 会使应用程序崩溃?