使用OpenCV获取前景遮罩

使用OpenCV获取前景遮罩,opencv,image-segmentation,background-foreground,Opencv,Image Segmentation,Background Foreground,BackgroundSubtractorMOG2返回前景的轮廓,而不是遮罩。如何使用OpenCV获得正确的前景遮罩 谢谢, Sajid在那里获得的前景遮罩为8位,您捕获的图像可能为24位(3个通道)。因此,要将其应用于实际图像,还需要将遮罩转换为3个通道: Mat maskrgb; cvtColor(mask,maskrgb,CV_GRAY2BGR); // now , apply it: Mat draw = imagergb & (maskrgb > 0); imshow("l

BackgroundSubtractorMOG2返回前景的轮廓,而不是遮罩。如何使用OpenCV获得正确的前景遮罩

谢谢,
Sajid

在那里获得的前景遮罩为8位,您捕获的图像可能为24位(3个通道)。因此,要将其应用于实际图像,还需要将遮罩转换为3个通道:

Mat maskrgb;
cvtColor(mask,maskrgb,CV_GRAY2BGR);
// now , apply it:
Mat draw = imagergb & (maskrgb > 0);
imshow("lalala", draw );

尝试使用cv::fillPoly函数,输入的是轮廓,然后您将拥有遮罩。