我试图在从最大点开始的行矩阵中找到一系列非零的边界,然后将边界外的值设置为零。
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
的各个元素?
答案 0 :(得分:0)
程序崩溃表明您可能超出了矩阵的边界。请检查以下内容: