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 31 Python
Python 3.6 读取并操作文件内容的实例
Apr 23 Python
基于python神经卷积网络的人脸识别
May 24 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
Django框架用户注销功能实现方法分析
May 28 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
python中bytes和str类型的区别
Oct 21 Python
python常用数据重复项处理方法
Nov 22 Python
TensorFlow的reshape操作 tf.reshape的实现
Apr 19 Python
Python实现动态循环输出文字功能
May 07 Python
Keras实现DenseNet结构操作
Jul 06 Python
python实现计算器简易版
Dec 17 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实现分页的一个示例
2006/10/09 PHP
15种PHP Encoder的比较
2007/03/06 PHP
如何突破PHP程序员的技术瓶颈分析
2011/07/17 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
PHP引用的调用方法分析
2016/04/25 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
jQuery 淡入淡出 png图在ie8下有黑色边框的解决方法
2013/03/05 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
详解nodejs的express如何自动生成项目框架
2017/07/12 NodeJs
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
2018/05/18 Python
python各类经纬度转换的实例代码
2019/08/08 Python
python 画条形图(柱状图)实例
2020/04/24 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
大学生写自荐信的技巧
2014/01/08 职场文书
高二美术教学反思
2014/01/14 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
高中生班主任评语
2014/04/25 职场文书
应届生求职自荐信
2014/07/04 职场文书
大一新生期末自我评价
2014/09/12 职场文书
2015年征兵工作总结
2015/07/23 职场文书
美容院管理规章制度
2015/08/05 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书