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 相关文章推荐
wxPython框架类和面板类的使用实例
Sep 28 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
Django基础三之视图函数的使用方法
Jul 18 Python
TensorFlow tensor的拼接实例
Jan 19 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
python pip如何手动安装二进制包
Sep 30 Python
Python入门之使用pandas分析excel数据
May 12 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 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/01/16 PHP
php实现可逆加密的方法
2015/08/11 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
通过原生JS实现为元素添加事件的方法
2016/11/23 Javascript
深入理解vue中的$set
2017/06/01 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python中实现switch功能实例解析
2018/01/11 Python
Python登录系统界面实现详解
2019/06/25 Python
python爬虫之遍历单个域名
2019/11/20 Python
使用python+whoosh实现全文检索
2019/12/09 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
.net开发工程师面试题
2014/02/25 面试题
介绍一下Make? 为什么使用make
2013/12/08 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
物流仓管员岗位职责
2013/12/04 职场文书
秋季运动会通讯稿
2014/01/24 职场文书
水果超市创业计划书
2014/01/27 职场文书
大学生新学期计划书
2014/04/28 职场文书
庆七一活动总结
2014/08/27 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang