Python OpenCV超详细讲解调整大小与图像操作的实现


Posted in Python onApril 02, 2022

准备工作

右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库。

Python OpenCV超详细讲解调整大小与图像操作的实现

我们还要知道在OpenCV中,坐标轴的方向是x轴向右,y轴向下,坐标原点在左上角,比如下面这张长为640像素,宽为480像素的图片。OK,下面开始本节的学习吧。

Python OpenCV超详细讲解调整大小与图像操作的实现

查看图像大小

  • 调用imread()方法获取我们资源文件夹中的图片lambo.png
  • 输出图像的shape属性
img=cv2.imread("Resources/lambo.png")
print(img.shape)

我们来看下效果:

Python OpenCV超详细讲解调整大小与图像操作的实现

上图中462是图像的高度,也就是y轴;

623是图像的宽度,也就是x轴;

3是通道数,BGR(蓝绿红)通道

重新调整图像大小

  • resize()方法可以将图像调整到指定的宽和高,参数1是需要调整的图像img,参数2是(600,300),也就是新图像的宽和高。
  • 我们打印下imgResize的shape,看看是不是输出(300,600,3)。
  • 最后将原图和修改大小后的图像显示出来。
img=cv2.imread("Resources/lambo.png")
imgResize=cv2.resize(img,(600,300))
print(imgResize.shape)
cv2.imshow("img",img)
cv2.imshow("imgResize",imgResize)
cv2.waitKey(0)

我们来运行一下,可以看到右侧是调整后的图像,明显宽和高都比原图小:

Python OpenCV超详细讲解调整大小与图像操作的实现

来看下控制台的输出,和图像大小是一样的:

Python OpenCV超详细讲解调整大小与图像操作的实现

图像裁剪

图像裁剪其实就是对矩阵进行截取,选哪些行哪些列,显示选中行列的像素点,就是裁剪后的图像。imgCropped=img[200:400,200:400]就是对原图进行裁剪,高从200到400,宽也从200到400,区间范围只要不超过它的高和宽即可。

img=cv2.imread("Resources/lambo.png")
imgCropped=img[200:400,200:400]
cv2.imshow("img",img)
cv2.imshow("imgCropped",imgCropped)
cv2.waitKey(0)

我们运行看下效果,左侧是623X462的原图,右侧是200X200的裁剪图:

Python OpenCV超详细讲解调整大小与图像操作的实现

我们将裁剪的图像放到原图上进行覆盖,可以拼成原图。

Python OpenCV超详细讲解调整大小与图像操作的实现

本节内容也是比较简单的,主要是让大家熟悉下OpenCV最基础的应用,为后面打下基础。眼过千遍不如手过一遍,快去动手敲一遍吧~?

到此这篇关于Python OpenCV超详细讲解调整大小与图像操作的实现的文章就介绍到这了,更多相关Python OpenCV 图像操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python每次处理固定个数的字符的方法总结
Jan 29 Python
python编程实现归并排序
Apr 14 Python
Python连接phoenix的方法示例
Sep 29 Python
python如何派生内置不可变类型并修改实例化行为
Mar 21 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
Python的垃圾回收机制详解
Aug 28 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
python自动从arxiv下载paper的示例代码
Dec 05 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 #Python
python对文档中元素删除,替换操作
Apr 02 #Python
Python中第三方库Faker的使用详解
Python数据处理的三个实用技巧分享
Python+Tkinter打造签名设计工具
Python正则表达式中flags参数的实例详解
Apr 01 #Python
Python+Tkinter制作专属图形化界面
You might like
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
随机头像PHP版
2006/10/09 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Django实现跨域的2种方法
2019/07/31 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
教师一岗双责责任书
2014/04/16 职场文书
高中生班主任评语
2014/04/25 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
迟到检讨书
2015/01/26 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis