cv2.resize 参数先宽度后高度

使用 cv2.imrad 读取的图像的 shape 是 (H,W,C)
即 shape[0] := H
shape[1] := W,即先高度,后宽度。
但是 cv.resize 时,输入的目标图像的形状是 (W,H),即先宽度、后高度。
还有一种参数是告知 resize 函数形状放缩因子 f x f y f_x \quad f_y fxfy,分别对应 W H W \quad H WH的放缩因子,也是先宽度后高度。

例子代码如下

import cv2

pic_name = 'PYY.png'
pic_data = cv2.imread(pic_name, cv2.IMREAD_UNCHANGED) # (H,W,C)
cv2.imshow("original_img", pic_data)

#resized = cv2.resize(pic_data, None, fx=0.5, fy=1, interpolation=cv2.INTER_AREA)
H,W = pic_data.shape[0:2]
resized = cv2.resize(pic_data, (int(W*0.5),H), interpolation=cv2.INTER_AREA)
cv2.imwrite('W_half.png',resized)

print('Resized Dimensions : ',resized.shape)

cv2.imshow("resized_img", resized)
cv2.waitKey(0)

原图如下
cv2.resize 参数先宽度后高度_第1张图片

执行 resized = cv2.resize(pic_data, None, fx=0.5, fy=1, interpolation=cv2.INTER_AREA)后的图像如下

cv2.resize 参数先宽度后高度_第2张图片
可以看出,高度无变化,宽度变为原来的 一半。

执行resized = cv2.resize(pic_data, (int(W*0.5),H), interpolation=cv2.INTER_AREA)

cv2.resize 参数先宽度后高度_第3张图片

可以看出,高度无变化,宽度变为原来的 一半。

你可能感兴趣的:(计算机视觉/图形学,opencv,计算机视觉,python)