使用opencv后,由于图像的坐标系和常规的坐标系x,y轴的位置不同,因此使用Mat::at(x,y)对图片像素点进行获取的时候非常疑惑,不知道是怎样的对应方式,于是做了一下很简单的一个小测试:
使用图片:
进行测试,测试主要代码:
Mat img = imread("test.png", 0);
Scalar intensity1 = img.at<uchar>(1, 10);
Scalar intensity2 = img.at<uchar>(10, 1);
cout<<intensity1.val[0]<<" "<<intensity2.val[0]<<endl;
得到结果为: 0 255
因此,访问的顺序为:Mat::at(row, col)
验证了之前的一句话:获取cv::Mat的坐标系以纵向为x轴,横向为y轴,而cvPoint等则相反