OpenCV程序在修改数组时崩溃



我试图找到从最大值开始的行矩阵中非零序列的边界,然后将边界外的值设置为零。

for(int i=maxloc.x; i < 280 ; i++){
    if(!foundBound && sum_r.at<uchar>(0,i) == 0){
        foundBound=true;
        bb.rightEdge = i;
    }
    else if(foundBound){
        cout << i << endl;
        sum_r.at<uchar>(0,i) = 0;     <--- offending line
    }
}

但是当我运行它的时候程序崩溃了。如果我注释掉sum_r.at<uchar>(0,i) = 0;,那么程序会一直运行到最后。我也有一次内存不足的错误,但我不能复制它。是否有更好的方法来访问Mat的单个元素?

程序崩溃表明您可能超出了矩阵的边界。检查以下内容:

  • maxloc。x & lt;280
  • sum_r。cols == 280

相关内容

  • 没有找到相关文章

最新更新