Python OpenCV中的resize()函数的使用


Posted in Python onJune 20, 2019

改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者。也可以按比例调整图像大小。

这里将介绍resize()函数的语法及实例。

语法

函数原型

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

参数:

参数 描述
src 【必需】原图像
dsize 【必需】输出图像所需大小
fx 【可选】沿水平轴的比例因子
fy 【可选】沿垂直轴的比例因子
interpolation 【可选】插值方式

【可选】插值方式

其中插值方式有很多种:

cv.INTER_NEAREST 最近邻插值
cv.INTER_LINEAR 双线性插值
cv.INTER_CUBIC 双线性插值
cv.INTER_AREA 使用像素区域关系重新采样。它可能是图像抽取的首选方法,因为它可以提供无莫尔条纹的结果。但是当图像被缩放时,它类似于INTER_NEAREST方法。

通常的,缩小使用cv.INTER_AREA,放缩使用cv.INTER_CUBIC(较慢)和cv.INTER_LINEAR(较快效果也不错)。默认情况下,所有的放缩都使用cv.INTER_LINEAR。

例子

保留高宽比

以下是我们将在其上进行实验的尺寸(149,200,4)(高度,宽度,通道数)的原始图像:

Python OpenCV中的resize()函数的使用

import cv2
 
img = cv2.imread('./Pictures/python.png', cv2.IMREAD_UNCHANGED)
 
print('Original Dimensions : ',img.shape)
 
scale_percent = 60  # percent of original size
width = 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('Resized Dimensions : ',resized.shape)
 
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

Original Dimensions : (149, 200, 4)
Resized Dimensions : (89, 120, 4)

Python OpenCV中的resize()函数的使用

调节scale_percent可以放大或缩小。需要准备shape先高再宽,参数是先宽再高。

还有一种方式,就是使用自带的参数fx和fy,更加方便。

import cv2
img = cv2.imread("./Pictures/python.png")
print('Original Dimensions : ', img.shape)

resized = cv2.resize(img, None, fx=0.6, fy=0.6, interpolation=cv2.INTER_AREA)

print('Resized Dimensions : ',resized.shape)

cv2.imshow("resized_img", resized)
cv2.waitKey(0)

不保留高宽比

例如,改变宽度,高度不变:

import cv2

img = cv2.imread("./Pictures/python.png")

print('Original Dimensions : ',img.shape)
 
width = 440
height = img.shape[0] # keep original height
dim = (width, height)
 
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
 
print('Resized Dimensions : ',resized.shape)
 
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

Original Dimensions : (149, 200, 4)
Resized Dimensions : (149, 440, 4)

Python OpenCV中的resize()函数的使用

指定高和宽

给定高和宽的像数值。

import cv2

img = cv2.imread("./Pictures/python.png")

print('Original Dimensions : ',img.shape)
 
width = 350
height = 450
dim = (width, height)
 
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
 
print('Resized Dimensions : ',resized.shape)
 
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果:

Original Dimensions : (149, 200, 4)
Resized Dimensions : (450, 350, 4)

Python OpenCV中的resize()函数的使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
浅谈python迭代器
Nov 08 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
Python 查找字符在字符串中的位置实例
May 02 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
python中的&&及||的实现示例
Aug 07 Python
python 实现绘制整齐的表格
Nov 18 Python
自学python用什么系统好
Jun 23 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
Python面向对象之内置函数相关知识总结
Jun 24 Python
python中的句柄操作的方法示例
Jun 20 #Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 #Python
一篇文章了解Python中常见的序列化操作
Jun 20 #Python
python集合是否可变总结
Jun 20 #Python
Django如何自定义model创建数据库索引的顺序
Jun 20 #Python
pyqt 多窗口之间的相互调用方法
Jun 19 #Python
pyqt5 实现多窗口跳转的方法
Jun 19 #Python
You might like
用PHP动态创建Flash动画
2006/10/09 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
php curl模拟post请求小实例
2013/11/13 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
javascript 面向对象 function类
2010/05/13 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
Electron整合React使用搭建开发环境的步骤详解
2020/06/07 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
python访问sqlserver示例
2014/02/10 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
英国计算机商店:Technextday
2019/12/28 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
电大学习个人自我评价范文
2013/10/04 职场文书
董事长秘书岗位职责
2013/11/29 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
演讲稿怎么写才完美
2014/01/02 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
社区务虚会发言材料
2014/10/20 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
详解nginx进程锁的实现
2021/06/14 Servers