OpenCV图像高宽及坐标的转换问题

版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,版权所有翻版必究。 https://blog.csdn.net/sinat_38814578/article/details/83117996

在计算机中,图像是以矩阵的形式保存的。一张 宽×高×颜色通道=256×640×3 的图片会保存在一个 640×256×3 的三维矩阵中。我们习惯的坐标表示为(x,y),在OpenCV中对图像处理时的坐标表示为(y,x),即img.shape返回的是( 高度,宽度 )=(y,x)。然而cv2.resize函数的dstdsize参数输入是 (宽度,高度),与img.shape相反。这里一定要注意!!很容易出错

img[50,10]也不是表示(x,y)为(50,10)的那个像素,与img.shape的原理相同,它表示的也是(y,x),即表示第50列第10行的那个元素。

坐标体系中的原点为图片的左上角,X轴为图像上边界水平线;Y轴为图像左边界垂直线。

在访问图像中点的值(x1,x2)时,x1并不是图片中对应点的x轴坐标,而是图片中对应点的y坐标。因此其访问的结果其实是访问image图像中的(x2,x1)点。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_38814578/article/details/83117996