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爬虫技巧汇总
Sep 28 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
python实现字符串和字典的转换
Sep 29 Python
小白入门篇使用Python搭建点击率预估模型
Oct 12 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
Python List remove()实例用法详解
Aug 02 Python
python模板入门教程之flask Jinja
Apr 11 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程序之die调试法 快速解决错误
2009/09/17 PHP
php错误级别的设置方法
2013/06/17 PHP
php上传大文件设置方法
2016/04/14 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
vue 解决IOS10低版本白屏的问题
2020/11/17 Javascript
python 循环while和for in简单实例
2016/08/16 Python
Python 模拟登陆的两种实现方法
2017/08/10 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
tensorflow之读取jpg图像长和宽实例
2020/06/18 Python
Python grpc超时机制代码示例
2020/09/14 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
新闻专业应届生求职信
2013/10/31 职场文书
保密承诺书
2014/03/27 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书