关于opencv中cv2.imread函数读取的图像shape问题

图像坐标系是(w,h),w为x轴,h为y轴,(x,y)

但opencv读出来的数组却正好相反,是(h,w,3),(y,x,3)

所以这里会有一个转换

image = cv2.imread('1.jpg')
print(image.shape[0:2])
##输出(365,500),也即(高度,宽度)

实则转换为图像坐标系时,要转置一下,或者image.shape[::-1]

切片操作 [start,endstep],其中:- start: 表示开始的下标,如果省略默认为 0
- end: 表示结束的下标(不包含),如果省略默认为序列长度
- step: 表示步长,默认为 1所以 a[::-1] 的含义是:- start 为最后一个元素 (因为省略了):a[-1]
- end 为第一个元素 (因为省略了):a[0]
- step 为 -1, 这意味着反向

使用matplotlib.pyplot.imread也是如此,plt.imread

猜你喜欢

转载自blog.csdn.net/m0_56514535/article/details/131516003