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中利用函数装饰器实现备忘功能
Mar 30 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
Python实现中文数字转换为阿拉伯数字的方法示例
May 26 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
python实现批量图片格式转换
Jun 16 Python
Python实现Linux监控的方法
May 16 Python
python面试题之列表声明实例分析
Jul 08 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
Python pip配置国内源的方法
Feb 14 Python
python查询MySQL将数据写入Excel
Oct 29 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 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加密解密函数分享
2014/06/05 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
2014/10/17 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
javascript 打印页面代码
2009/03/24 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Pyramid添加Middleware的方法实例
2013/11/27 Python
理解python正则表达式
2016/01/15 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
python中pop()函数的语法与实例
2020/12/01 Python
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
Yahoo-PHP面试题2
2014/12/06 面试题
药品促销活动方案
2014/02/14 职场文书
公司请假条范文
2014/04/11 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
任命书标准格式
2015/03/02 职场文书
太空授课观后感
2015/06/17 职场文书
导游词之山东孔庙
2019/11/04 职场文书