我正在使用直方图对图像进行前景提取。在第一个迭代中,它完美地标识了我们希望遵循的对象。但经过一轮迭代,它开始向我显示一些与背景相对应的噪音。因此,OpenCV的cv :: calchist函数开始考虑那些具有前景的背景点,因此丢失了该对象。我使用de calcbackProject函数减去前景。
我假设我必须同时处理背景和前景的直方图。但我只是不知道该怎么做。
我添加了图片,以便您可以看到问题
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);
}