在计算机中,图像是以矩阵的形式保存的。一张 宽×高×颜色通道=256×640×3 的图片会保存在一个 640×256×3 的三维矩阵中。我们习惯的坐标表示为(x,y)
,在OpenCV中对图像处理时的坐标表示为(y,x)
,即img.shape
返回的是( 高度,宽度 )=(y,x)
。然而cv2.resize()
,cv2.warpAffine()
函数的dst
和dsize
参数输入是 (宽度,高度)
,与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)
点。