使用直方图的前台变电站

时间:2018-07-06 08:23:53

标签: c++ opencv

我正在使用直方图对图像进行前景提取。在第一个迭代中,它完美地标识了我们希望遵循的对象。但经过一轮迭代,它开始向我显示一些与背景相对应的噪音。因此,OpenCV的cv :: calchist函数开始考虑那些具有前景的背景点,因此丢失了该对象。我使用de calcbackProject函数减去前景。

我假设我必须同时处理背景和前景的直方图。但我只是不知道该怎么做。

我添加了图片,以便您可以看到问题

first iterations where the image works well enter image description here

while(1){

//&primeraIMG is camera frame
//this->foreMasc is image foreground (see add images) 
calcHist(&primeraIMG, 1, channels, this->foreMasc, this->foreHistogramme, 3, sizes, ranges, true, false);

//cv::normalize(this->foreHistogramme, this->foreHistogramme, 0, hist_h, cv::NORM_MINMAX, -1, cv::Mat());

calcBackProject(&primeraIMG, 1, channels, this->foreHistogramme, this->bk, ranges, 1, true);

cv::morphologyEx(this->bk, this->backproj, cv::MORPH_OPEN, kern);
cv::morphologyEx(this->backproj, this->foreMasc, cv::MORPH_CLOSE, kern);

cv::threshold(this->foreMasc, this->foreMasc, 10, 255, cv::THRESH_BINARY);

//****** CALCULATING THE BACKGROUND **********

cv::threshold(this->foreMasc, this->background, 0, 255, cv::THRESH_BINARY_INV);

}

0 个答案:

没有答案