2016-01-20 97 views
0

我有一些噪音的二进制图像。我想通过使用沿图像滑动的矩形大小(10x10)来减少噪音。错误在OpenCV ROI图像

如果矩形包含多于20个nonZero像素,我会将ROI复制到目标图像。

for (int i = 0; i < binary.rows-10; i+=10){ 
    for (int j = 0; j < binary.cols-10; j+=10) 
    { 
     cv::Rect Roi(i, j, 10, 10); 
     cv::Mat countImg = cv::Mat(10, 10, CV_8UC1); 
     countImg = cv::Mat(binary, Roi); 

     if (cv::countNonZero(countImg)>20) 
     { 
      countImg.copyTo(binary_filter.rowRange(i, i + 10).colRange(j, j + 10)); 
     } 
    } 
} 

该程序在函数处遇到错误谁能解释?

回答

1

真正的问题发生在这里:

cv::Rect Roi(i, j, 10, 10); 

cv::Rect是格式(x, y, width, height)没有(y, x, width_, height)的。


为了使它正常工作,将其更改为

cv::Rect Roi(j, i, 10, 10); 
+0

TKS U,我知道了 –