我想在图像上从左上角到右下角画一条线 图像是水平的,并且:
print(size)
返回:
(203, 248)
使用我的代码,我期待从像素(0,0)到像素(203,248)的对角线。但是我得到了从像素(0,0)到像素(248,203)的对角线,它在图像边界之外(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()
答案 0 :(得分:0)
这是因为NumPy基于行优先原则(即你的形状是(行,列))索引数组,cv2索引基于(x,y)坐标,意味着轴被翻转。这可能很烦人,但这应该可以解决您的问题:
尝试更改:
cv2.line(image_1, (0,0), image_1.shape, 255, 1, 16)
到
cv2.line(image_1, (0,0), image_1.shape[::-1], 255, 1, 16)
[::-1]
将元组翻转为(248, 203)
,你的行现在应该看起来很好。