python 图片resize()方法汇总

在计算机视觉领域,收集训练集和测试集图片后一般要对图像进行预处理,其中图像尺寸缩放就是常用的方法之一,本文汇总了几种常见的图片尺寸汇总方法(会持续更新!)

(1)利用OpenCV包中resize图片缩放API

res = cv2.resize(img,(2width,2height),interpolation=cv2.INTER_CUBIC)
第一个参数img要缩放的图像名,dstWidth,dstHeight分别是宽度和长度的缩放比例,缩放算法有最近临域插值、双线性插值、像素关系重采样和立方插值,默认方法采用双线性插值。
imgInfo = img.shape
图片对应三维矩阵,第一维对应图片的高度,第二维矩阵对应图片长度,第三维矩阵对应图片的通道数,如果图片的shape= (220, 319, 3),表示图片高度上有220个像素,长度上有319个像素,通道数为3.
height = imgInfo[0]
width = imgInfo[1]
mode = imgInfo[2]

(2)利用OpenCV包中warpAffine API

warpAffine API是用来进行仿射变换的
cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]])
其中:
src - 输入图像。
M - 变换矩阵。
dsize - 输出图像的大小,可以用来图片缩放
flags - 插值方法的组合(int 类型!)
borderMode - 边界像素模式(int 类型!)
borderValue - (重点!)边界填充值; 默认情况下,它为0。

(3)利用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()

(4)利用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)

你可能感兴趣的:(计算机视觉,TensorFlow)