利用Python里的cv2(opencv)改变图片大小【同时也是cv2.resize的学习】

简介

opencv库当中的resize函数可以帮助我们快速进行图像的大小变化,在此我记录一下我的学习心得,并且提出自己的问题,希望大家可以参考和阅读。

resize函数

cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) → dst

参数说明

src :源图像
dst :目标图像。当参数dsize不为0时,dst的大小为dsize的大小;否则,它的大小需要根据src的大小以及参数fx和fy决定。另外,dst的类型和src图像相同。
dsize :目标图像大小。当dsize为0时,它可以通过以下公式计算得出:
当dsize为0时,它可以通过以下公式计算得出:
请注意,参数dsize和参数(fx, fy)不能够同时为0
fx :水平轴上的比例因子。当它为0时,计算公式如下:
当fx为0时,计算公式如下:
fy :垂直轴上的比例因子。当它为0时,计算公式如下:
当fy为0时,计算公式如下:
interpolation :(说实话我感觉这几个差不多)
Interpolation 方法:

  • INTER_NEAREST:最近邻插值法
  • INTER_LINEAR:双线性插值法(默认)
  • INTER_AREA:基于局部像素的重采样。对于图像抽取来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。
  • INTER_CUBIC:基于4x4像素邻域的3次插值法
  • INTER_LANCZOS4:基于8x8像素邻域的Lanczos插值

代码示例

第一种(使用参数dsize)

import cv2
 
img = cv2.imread('image1.jpg') #读图
 
print(img.shape)         #输出为(450,600,3)(高,宽,通道数)
height,width = img.shape[:2]  #获取原图像的水平方向尺寸和垂直方向尺寸。
res = cv2.resize(img,(width//2,height//2),interpolation=cv2.INTER_CUBIC)   #dsize=(2*width,2*height)
 
cv2.imshow('res',res)
cv2.imwrite('output.jpg',res)


#cv2.destroyWindow('res')
#销毁指定窗口

第二种(使用参数fx,fy)

import cv2
 
img = cv2.imread('image1.jpg')#读图

height,width = img.shape[:2]  #获取原图像的水平方向尺寸和垂直方向尺寸。
res = cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)
#比例因子:fx=2,fy=2
cv2.imshow('res',res)
cv2.imwrite('output2.jpg',res)


#cv2.destroyWindow('res')
#销毁指定窗口

另:附上官方文档截图
cv2.resize官方文档截图

参考文章链接

1、opencv中的resize 函数 的理解以及引申
2、图像处理: 五种 插值法
3、cv2.resize官方文档

  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值