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