python 图片resize()方法汇总

本文详细介绍并对比了OpenCV、Pillow、skimage及matplotlib等常见库的图片缩放方法,包括不同插值算法的应用场景,适用于图像处理、计算机视觉等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文汇总了几种常见的图片尺寸缩放方法(会持续更新!)

(1)利用OpenCV包中resize方法

res = cv2.resize(img,(2width,2height), fx, fy, interpolation=cv2.INTER_CUBIC)
第一个参数img要缩放的图像名,可以通过两种方法确定缩放后图片大小,第一种利用参数(2width,2height),用来直接指定缩放后的宽度和长度;第二种,利用参数fx和fy,分别指定宽度和高度的缩放比例因子。
缩放算法有最近临域插值、双线性插值、像素关系重采样和立方插值,默认方法采用双线性插值。
imgInfo = img.shape
图片对应三维矩阵,第一维对应图片的高度,第二维矩阵对应图片长度,第三维矩阵对应图片的通道数,如果图片的shape= (220, 319, 3),表示图片高度上有220个像素,长度上有319个像素,通道数为3.
height = imgInfo[0]
width = imgInfo[1]
channel = imgInfo[2]
举例:

#第一种
size = (int(width*0.3), int(height*0.5))  
shrink = cv2.resize(img, size, interpolation=cv2.INTER_AREA)  
  
# 第二种
fx = 1.6  
fy = 1.2  
enlarge = cv2.resize(img, (0, 0), fx=fx, fy=fy, interpolation=cv2.INTER_CUBIC)  

(2)利用pillow包中Image类中的resize方法

resize(size,resample,box)
resize方法可以将原始的图像转换大小,size是转换之后的大小,resample是重新采样使用的方法,有Image.BICUBIC,PIL.Image.LANCZOS,PIL.Image.BILINEAR,PIL.Image.NEAREST等几种采样方法,默认是PIL.Image.NEAREST,box是指定的要resize的图像区域。
示例:

im_resize = im.resize((200,200))
im_resize.show()
im_resize_box = im.resize((100,100),box = (0,0,50,50))
im_resize_box.show()

(3)利用skimage包中transform类中的resize方法

示例:

from skimage import io, transform
re_img = transform.resize(crop_img, (224, 224))

第一个参数是要缩放的原图片,第二个参数是想要缩放的大小。
需要注意的是numpy包如果升级到1.16,则会出现这个错误:
ImportError: cannot import name ‘_validate_lengths’ from ‘numpy.lib.arraypad’ (C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\arraypad.py)

(4)利用matplotlib缩放图片

这个方法不太常用,直接看代码:

plt.figure(figsize=(2.24,2.24)) #设置画板大小
image = plt.imread("16d2d9a8cd6fe71c48974b24ee3ceb5.jpg")    #先读入图片
plt.imshow(image) 
plt.savefig('test.png', format='png', dpi=200) #保存缩放后图片

此外,像pytorch、tensorflow这些深度学习框架的前处理API也都有图像缩放方法,用起来也很方便,当然,你要愿意动手,也可以自己用numpy实现一些图像缩放算法!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值