Как создать изображение только на переднем плане, учитывая силуэт переднего плана в OpenCV?
Я сделал часть вычитания фона для моей задачи извлечения переднего плана. Теперь, когда у меня есть силуэт, представляющий передний план белым и черный фон, я не знаю, как сделать изображение переднего плана, содержащее только значения пикселей (из исходного кадра). Я использую Opencv 2.3, и я использую Mat для хранения изображений. Есть идеи? Заранее спасибо..
2 ответа
Решение
Вы можете сделать следующим образом:
Mat image; // the original image
Mat foreground_bw; // the foreground in black and white
background_subtractor ( image, foreground_bw, -1.0 );
// getting the corresponding pixel values for the foreground.
Mat foreground = Mat::zeros ( image.rows, image.cols, image.type() );
image.copyTo ( foreground, foreground_bw );
Создайте новое изображение с размерами оригинала, прокрутите все пиксели фонового изображения / фона переднего плана (тот, где фон черный, а белого цвета передний план) и для каждого пикселя скопируйте из текущего / исходного изображения (из камера и т. д.) или из вашей оценки фона сделанный.