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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python的一些用法分享
Oct 07 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
PyCharm代码格式调整方法
May 23 Python
Python操作mongodb的9个步骤
Jun 04 Python
python 使用值来排序一个字典的方法
Nov 16 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
关于Python OS模块常用文件/目录函数详解
Jul 01 Python
pandas中pd.groupby()的用法详解
Jun 16 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP4实际应用经验篇(7)
2006/10/09 PHP
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
js的回调函数详解
2015/01/05 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
javascript实现密码验证
2015/11/10 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
python 生成图形验证码的方法示例
2018/11/11 Python
详解Python 解压缩文件
2019/04/09 Python
OpenCV+python实现实时目标检测功能
2020/06/24 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
当当网软件测试笔试题
2015/11/24 面试题
Delphi CS笔试题
2014/01/04 面试题
农民工创业典型事迹
2014/01/25 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
2014年班务工作总结
2014/12/02 职场文书
开展警示教育活动总结
2015/05/09 职场文书
旷工检讨书大全
2015/08/15 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技