【发布时间】:2021-12-21 01:41:54
【问题描述】:
我在矩阵src 中有一张 300x200 的图像。我正在对图片做如下操作。
for(int i=0;i<src.rows;i++){
for(int j=0;j<src.cols;j++){
line( src, Point(i,j),Point(i,j), Scalar( 255, 0, 0 ), 1,8 );
}
}
imshow("A",src);
waitKey(0);
我希望它以白色覆盖整个图像,但图像的下部仍然是空白的。而如果我这样做
for(int i=0;i<src.rows;i++){
for(int j=0;j<src.cols;j++){
src.at<uchar>(i,j)=255;
}
}
imshow("A",src);
waitKey(0);
整个图像被白色覆盖。所以,这意味着src.at<uchar>(i,j) 使用(i,j) 作为(行,列),但Point(x,y) 使用(x,y) 作为(列,行)
【问题讨论】:
-
没错。文档说了很多 - Point(x,y) 和 at(row,col) 是它的实现方式。
-
是的。点和大小 go (x,y); (width,height) ,- Mat 有 (row,col)。
-
感谢您提出这个问题。这种该死的不一致花费了我数小时的调试时间......