Как создать изображение только на переднем плане, учитывая силуэт переднего плана в 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 );

Создайте новое изображение с размерами оригинала, прокрутите все пиксели фонового изображения / фона переднего плана (тот, где фон черный, а белого цвета передний план) и для каждого пикселя скопируйте из текущего / исходного изображения (из камера и т. д.) или из вашей оценки фона сделанный.

Другие вопросы по тегам