更改图像大小意味着分别更改高度和/或宽度。 也可以按比例调整图像的尺寸。
以下是resize ()函数的语法和示例。
语法
函数原型
CV2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]] ) )
参数:
参数
说明
src
【必须】原图像
dsize
【必须】图像输出所需的尺寸
福克斯
【可选件】沿水平轴的比例因子
fy
【可选件】沿垂直轴的比例因子
国际
【选购件】插补方式
其中有各种各样的插值方式。
cv.INTER_NEAREST
最近邻插值
cv.INTER_LINEAR
双线性插值
cv.INTER_CUBIC
双线性插值
cv.INTER_AREA
使用像素区域关系重新采样。 这可能是图像提取的最佳方法,因为它可以提供无pgdp条纹的结果。 但是,当图像缩放时,它类似于INTER_NEAREST方法。
通常,收缩使用cv.INTER_AREA,收缩使用cv.INTER_CUBIC (慢)、cv.INTER_LINEAR (快) ),效果也很好。 缺省情况下,所有缩进都使用cv.INTER_LINEAR。
范例
保持mldnp比
以下是在此基础上进行实验的尺寸(149,200,4 ) )、高度、宽度、通道数)的原始图像。
importcv2
img=cv2.im read ('./pictures/python.png ',cv2.IMREAD_UNCHANGED ) print('originaldimensions3360 ',img )
sale _ percent=60 # percentoforiginalsize
idth=int (img.shape [1] * scale _ percent/100 ) ) ) ) )
height=int (img.shape [0] * scale _ percent/100 ) ) ) ) ) ) ) ) )。
dim=(width,height ) #resize image
resized=cv2.resize(img,dim,interpolation=cv2.INTER_AREA ) print('resizeddimensions3360 ',resized.shape
CV2.imshow(resizedimage )、resized ) )。
cv2 .等待密钥(0) () ) ) ) ) ) ) ) ) ) )。
cv2.destroyAllWindows (
结果:
原始维度3360 (149,200,4 )。
精简维度3360 (89,120,4 )。
调整scale_percent可以放大或缩小。 必须从高度到宽度准备形状。 参数从宽到高。
另一种方式是使用附带的参数fx和fy,会更方便。
importcv2
img=cv2.im read ((./pictures/python.png ) )、originaldimensions: )、img.shape ) )。
resized=cv2.resize(img,None,fx=0.6,fy=0.6,interpolation=cv2.INTER_AREA ) print ) resizeddimensions30
CV2.imshow(resized_img ),resized ) )。
cv2 .等待密钥(0) () ) ) ) ) ) ) ) ) ) )。
不保存mldnp比
例如,改变宽度,不改变高度:
importcv2
img=cv2.im read ((./pictures/python.png ) )、originaldimensions: )、img.shape ) )。
idth=440 height=img.shape [0] # keeporiginalheight
dim=(width,height ) #resize image
resized=cv2.resize(img,dim,interpolation=cv2.INTER_AREA ) print('resizeddimensions3360 ',resized.shape
CV2.imshow(resizedimage )、resized ) )。
cv2 .等待密钥(0) () ) ) ) ) ) ) ) ) ) )。
cv2.destroyAllWindows (
结果:
原始维度3360 (149,200,4 )。
精简维度3360 (149,440,4 )。
指定高度和宽度
给出高度和宽度的图像数值。
importcv2
img=cv2.im read ((./pictures/python.png ) )、originaldimensions: )、img.shape ) )。
width=350height=450dim=(width,height ) #resize image
resized=cv2.resize(img,dim,interpolation=cv2.INTER_AREA ) print('resizeddimensions3360 ',resized.shape
CV2.imshow(resizedimage )、resized ) )。
cv2 .等待密钥(0) () ) ) ) ) ) ) ) ) ) )。
cv2.destroyAllWindows (
结果:
原始维度3360 (149,200,4 )。
精简维度3360 (450,350,4 )。
参考链接: