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中的super()方法
Nov 20 Python
Python装饰器原理与用法分析
Apr 30 Python
详解python while 函数及while和for的区别
Sep 07 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
150行python代码实现贪吃蛇游戏
Apr 24 Python
Python爬虫爬取百度搜索内容代码实例
Jun 05 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
python3中布局背景颜色代码分析
Dec 01 Python
使用Python爬虫爬取小红书完完整整的全过程
Jan 19 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
YII框架关联查询操作示例
2019/04/29 PHP
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
浅谈jQuery中replace()方法
2015/05/13 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
微信小程序 出现错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}解决办法
2017/02/23 Javascript
NodeJs测试框架Mocha的安装与使用
2017/03/28 NodeJs
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
Python pickle模块用法实例分析
2015/05/27 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
Pycharm学习教程(5) Python快捷键相关设置
2017/05/03 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
Java编程面试题
2016/04/04 面试题
工业自动化专业自荐信范文
2014/04/10 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
HTML基础详解(上)
2021/10/16 HTML / CSS
i7 6700处理器相当于i5几代
2022/04/19 数码科技
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python