2016-01-20 99 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,我知道了 –