cv2.resize()的一点小坑

今天看代码的时候,感觉有点和自己想的不一样,就是cv2.resize()函数,先给出他的参数:

resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)

一般看到以后会觉得那不就是把原图src resize到dsize的大小吗?后来发现没有这么简单:
给出原图及大小:

import cv2
img = cv2.imread('E:\Poker\\train\cam_image1.jpg')
print(img.shape)  
# (270, 480, 3) (height, width, channel)

就是下面这张图:
cv2.resize()的一点小坑_第1张图片
然后下面跟我想的就不一样了:

img1 = cv2.resize(img, (960, 540))
print(img1.shape)
# (540, 960, 3)
img2 = cv2.resize(img, (540, 960))
print(img2.shape)
# (960, 540, 3)

怎么跟我想的简单的resize不一样啊,看过官方文档之后,发现:

dsize里面两个参数的顺序应该对应后面的fx, fy的顺序,所以是cols, rows的顺序,也就是width, height的顺序

要注意的一点就是打印出来的shape是按照(height, width, channel)的顺序,和dsize的顺序是相反的(忽略通道这维)

所以以后自己写的时候要稍微注意一点这儿啦~~

你可能感兴趣的:(python)