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中的数据类型
May 05 Python
python转换字符串为摩尔斯电码的方法
Jul 06 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Python代码打开本地.mp4格式文件的方法
Jan 03 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
python实现超级马里奥
Mar 18 Python
Python使用tkinter实现摇骰子小游戏功能的代码
Jul 02 Python
python非标准时间的转换
Jul 25 Python
Python中三种花式打印的示例详解
Mar 19 Python
python获取带有返回值的多线程
May 02 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
神族 PROTOSS 概述
2020/03/14 星际争霸
JS 的应用开发初探(mootools)
2009/12/19 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
微信小程序 页面跳转传值实现代码
2017/07/27 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
浅谈Vue2.4.0 $attrs与inheritAttrs的具体使用
2020/03/08 Javascript
Python学生信息管理系统修改版
2018/03/13 Python
python3.5安装python3-tk详解
2019/04/26 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
Python中zipfile压缩文件模块的基本使用教程
2020/06/14 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
电大自我鉴定范文
2013/10/01 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
小学作文评语大全
2014/04/21 职场文书
关爱老人标语
2014/06/21 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP