如何在OpenCV中实现颜色分割以及前景检测?

时间:2016-12-21 10:57:46

标签: c++ opencv computer-vision

我的问题是,FG检测输出是二进制图像(使用MoG方法)。如何将此输出恢复为3通道(RGB)图像,以便可以使用像均值漂移这样的颜色分割算法。我的最终目标是检测“最大的彩色片段”的斑点。在FG中有效地省略了BG。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设img是您的3频道图片,thresh是您的二进制图片。根据我的理解,你希望thresh的白色部分保留其RGB值,黑色部分应保持黑色。你可以这样做:

    Mat mask;
    cvtColor(thresh,thresh,CV_GRAY2BGR);//change thresh to a 3 channel image
    absdiff(img,img,mask);//initialize mask as a black image of img.size()
    subtract(thresh,img,mask);
    subtract(thresh,mask,mask);

现在mask将保存带有RGB值的滤镜图片。