извлечение уточненного переднего плана (в реальном виде) из видео с использованием OpenCv C ++ с использованием absdiff

Эта функция берет входной видеопоток и обрабатывает его:
Он берет 100 кадров и вычисляет среднее значение и делает его фоновым, а затем вычитает текущее изображение из фоновой модели и извлекает передний план, но его очень шумно, может кто-нибудь любезно подсказать мне, как отображать объекты переднего плана в его реальной форме.

int foregroundNbackground(VideoCapture cap){

int count=0;
vector<Mat> img_bg;
Mat img, img_diff, b1;
Mat Background = T12(cap);    // This calculates the average of previous 100 frames and make it the background model
imshow("Model", Background);
while(1){
cap >> img;
if(count < 100){
img_bg.push_back(img);
}
if(count == 100){
Background =  getMean(img_bg);
cvtColor(Background, b1, CV_BGR2GRAY);
imshow("Model", b1);
count = 0;
img_bg.clear();
}
absdiff(img, Background, img_diff);
count++;
cvtColor(img_diff,img_diff, CV_BGR2GRAY);
threshold(img_diff,img_diff,80,255, CV_THRESH_BINARY);
imshow("Task13", img_diff);
waitKey(33);
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]