Python 使用cv2.line绘制直线时图像方向不正确

Python 使用cv2.line绘制直线时图像方向不正确,python,image,rotation,cv2,Python,Image,Rotation,Cv2,我想在图像上从左上角到右下角画一条线。 图像是水平的,并且: print(size) 返回: (203, 248) 对于我的代码,我期望从像素(0,0)到像素(203248)有一条对角线。然而,我得到了从像素(0,0)到像素(248203)的对角线,它在图像边界(sic!)之外。 我想cv2.line方法会以某种方式旋转图像,有人能提出建议吗 这是我的密码: import cv2 image_1 = cv2.imread('profilowe.jpeg',0) size = image_1

我想在图像上从左上角到右下角画一条线。
图像是水平的,并且:

print(size)
返回:

(203, 248)
对于我的代码,我期望从像素(0,0)到像素(203248)有一条对角线。然而,我得到了从像素(0,0)到像素(248203)的对角线,它在图像边界(sic!)之外。 我想cv2.line方法会以某种方式旋转图像,有人能提出建议吗

这是我的密码:

import cv2

image_1 = cv2.imread('profilowe.jpeg',0)
size = image_1.shape
print(size)
cv2.line(image_1,(0,0),image_1.shape,255,1,16)

cv2.imshow('image',image_1)
cv2.waitKey(0)
cv2.destroyAllWindows()

之所以会发生这种情况,是因为当NumPy索引数组基于行优先原则(即您的形状是(行、列)),而cv2索引基于(x、y)坐标,这意味着轴被翻转。这可能很烦人,但这应该可以解决您的问题:

尝试更改:

cv2.line(image_1, (0,0), image_1.shape, 255, 1, 16)

[::-1]
将元组翻转为
(248203)
,您的行现在看起来应该很好

cv2.line(image_1, (0,0), image_1.shape[::-1], 255, 1, 16)