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文件及目录操作实例详解
Jun 04 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
python 禁止函数修改列表的实现方法
Aug 03 Python
Python基于回溯法子集树模板解决找零问题示例
Sep 11 Python
python机器学习理论与实战(六)支持向量机
Jan 19 Python
对Python w和w+权限的区别详解
Jan 23 Python
python中的django是做什么的
Jul 31 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
一行代码python实现文件共享服务器
Apr 22 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 Python
Python机器学习之KNN近邻算法
May 14 Python
Python Django获取URL中的数据详解
Nov 01 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函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
php文件上传类完整实例
2016/05/14 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
JavaScript 特殊字符
2007/04/05 Javascript
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
JavaScript判断表单为空及获取焦点的方法
2016/02/12 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
Python中实现三目运算的方法
2015/06/21 Python
python执行使用shell命令方法分享
2017/11/08 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
python中Lambda表达式详解
2019/11/20 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
四风存在的原因分析
2014/02/11 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
Python学习开发之图形用户界面详解
2021/08/23 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL
Golang实现可重入锁的示例代码
2022/05/25 Golang