at() 访问图片像素值的时候,坐标要注意不要弄反了!
- Mat::at(x0, y0),中,x0 表示的是图片的行索引, y0表示的是列索引;第0行为图片最上面一行,第0列为最左边一列;
- 而 Rect.x 表示的是以左上角为原点的坐标值,最上面一行表示X轴,最左边一列为Y轴,实际上为列索引;Rect.y 则为行索引
- 例如:Mat a = b(Range(), Range()); 中,第一个 Range 表示行区间,第二个表示列区间
以下这段代码的执行结果及其是这样的
Mat test00 = Mat::zeros(5, 10, CV_8UC1);
test00.at<uchar>(0, 0) = 255;
test00.at<uchar>(0, 9) = 255;
test00.at<uchar>(4, 9) = 255;
test00.at<uchar>(4, 0) = 255;