opencv中表示一个像素的方式有好几种, 而且和矩阵用行列表示的方法还不太一致, 所以做了个测试, 备注一下.
cv::Mat img(100, 200, CV_64F);
cv::circle(img, cv::Point(30, 60), 2, 1, 2);
img.at<double>(35, 70) = 1;
img.at<double>(cv::Point(20, 40)) = 0.4;
cv::imshow("demo", img);
cv::waitKey();
结论:
- Point的参数应该是col, row. 即
Point(col, row)
- 如果仿照矩阵用 i, j 表示第 i 行第 j 列, 可以用
img.at(i, j)
更新一下, opencv是视觉库, 所以坐标的逻辑都是基于图像的, 也就是说, 其坐标表示为 宽×高, 即(col, row).