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