1、OpenCV——图片的读、改、显、存操作函数
OpenCV——函数
函数cv2.imread()读取图片
opencv读取图片的函数是 cv2.imread
。 此函数采用以下参数:
- 要读取/加载的图像的文件名
- 用于指定我们要以哪种模式读取图像的标志
如果我们尝试加载不存在的图像,该函数将返回无(None
)。这可以用来检查图像是否被成功读取。目前,OpenCV 支持 .bmp
,.jpeg
,.jpg
,.png
,.tiff
和 .tif
等格式的图像。详细的列表可以:参考官方文档https://docs.opencv.org/4.2.0/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56。
通常,只有三个标志用于在指定模式下读取图像:
- cv2.IMREAD_UNCHANGED:照原样读取图像。这意味着,如果图像是具有透明背景的 PNG 图像,则它将被读取为 BGRA 图像,其中
A
指定Alpha
通道:负责透明度。 如果不使用此标志,则该图像将作为BGR
图像读取。请注意,BGR
是指图像的蓝色,绿色和红色通道。A
(或Alpha
通道)负责透明度。这就是为什么具有透明背景的图像将被读取为BGRA
而不是BGR
。 同样需要注意的是,默认情况下,OpenCV 使用BGR
模式,这就是我们在这里讨论BGRA
模式而不是RGBA
模式的原因。 - cv2.IMREAD_GRAYSCALE:以灰度格式读取图像,这会将任何彩色图像转换为灰度图像。
- cv2.IMREAD_COLOR:默认标志,它将任何图像读取为彩色图像(
BGR
模式)。
OpenCV 以 BGR
模式而不是 RGB
模式读取图像。这意味着通道的顺序变为蓝色,绿色和红色。 即使我们将使用其他 OpenCV 函数,也假定图像处于 BGR
模式
函数cv2.cvtColor()修改图像
当场景需要以下任务的操作时:
- 转换图像的色彩空间
- 将图像分成多个通道
- 合并通道以形成图像
可以用转换图像的色彩空间 cv2.cvtColor
函数,此函数有两个输入元素:
- 要转换的图像
- 颜色转换标志,如下所示:
cv2.COLOR_{CURRENT_COLOR_SPACE}2{NEW_COLOR_SPACE}
例如,要将 BGR
图像转换为 HSV
图像,将使用 cv2.COLOR_BGR2HSV
。 要将 BGR
图像转换为 灰度
图像,将使用:cv2.COLOR_BGR2GRAY
,依此类推。详细的列表可以:参考官方文档https://docs.opencv.org/4.2.0/d8/d01/group__imgproc__color__conversions.html
拆分和合并渠道。假设您只想修改图像的红色通道,您可以先拆分三个通道(蓝色,绿色和红色),修改红色通道,然后再次合并三个通道。让我们看看如何使用 OpenCV 函数拆分和合并通道:
- 分割通道,可以使用
cv2.split
函数。 它仅需一个参数:要分割的图像,并返回三个通道的列表:蓝色,绿色和红色。 - 合并通道,可以使用
cv2.merge
函数。 它仅接受一个参数:一个由三个通道(蓝色,绿色和红色)组成的集合,并返回合并的图像。
函数cv2.imshow()显示图片
使用三个主要函数来进行显示:
- 显示图像,使用
cv2.imshow
函数。它有两个参数。第一个参数是一个字符串,它是我们将在其中显示图像的窗口的名称。第二个参数是我们要显示的图像。 - 保持时间,调用
cv2.imshow
函数后,我们使用cv2.waitKey
函数。此函数指定控件应在窗口上停留多长时间。如果要在用户按下任意键后,才执行下一段代码,则可以提供0
。否则,可以提供一个数字,该数字指定程序在移至下一段代码之前将等待的毫秒数。例如,如果要等待10
毫秒才能执行下一段代码,则可以使用cv2.waitKey(10)
。 - 关闭窗口,如果不调用
cv2.waitKey
函数,则窗口将无法正确显示。但是,运行下一个代码后,该窗口仍将保持打开状态,要关闭所有显示窗口,我们可以使用cv2.destroyAllWindows()
函数。它不带任何参数。建议不再使用显示窗口时将其关闭。
函数cv2.imwrite()保存图像函数
使用 OpenCV 的 cv2.imwrite
函数保存图像。它有两个参数:
- 一个字符串,指定我们要用于保存图像的文件名
- 我们要保存的图像
1、OpenCV——图片的读、改、显、存操作函数相关推荐
- 计算机改显存会有啥影响,显卡内存越大越好吗?显存对计算机速度(全文)的影响...
对于那些不熟悉DIY领域的新手来说,图形卡性能的指标是GPU芯片及其频率,这确实是图形卡性能的决定性因素.但是,除了GPU之外,还有另一个部分会对图形卡的性能产生更大的影响,即视频内存. 图形内存越大 ...
- 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...
对于刚接触DIY领域的小白玩家来说,衡量显卡性能的指标就是GPU芯片和其频率,这也确实是显卡性能的决定性因素.但除了GPU,还有一个对显卡性能影响较大的部分,那就是显存. 显卡显存越大越好吗?显存对电 ...
- CNN模型的计算量、参数、显存占用
经典CNN模型的计算量.参数.显存占用 文章目录 经典CNN模型的计算量.参数.显存占用 1. 深度学习复杂度 2. FLOPS概念 3.参数量计算 4. 输出特征图尺寸 5. 常用模型的FlOPs和 ...
- pythongui显示图片_opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像...
#-*- coding: utf-8 -*- """Created on Tue Mar 14 19:39:11 2017 @author: Thinkpad" ...
- bios显存改8g rx_【折腾】RX470矿卡刷BIOS变身记
本文是折腾备用机时心血来潮所写,对大部分小白不具备参考意义,仅供自娱自乐. 另外也非常非常非常不推荐小白入手矿卡,除非实在没钱,整机预算2000却想恰鸡.这个时候我认为组一套i3-9100F+H310 ...
- P014魔改8G显存
最近挖grin31算法的全网算力暴涨,NVIDIA-P104-100 4G显存矿卡已经被破解为8G显存,有些商家进行了收费制技术销售,单卡破解价格高达30元.尝试了下将影驰P104-4G破解为8G显存 ...
- 一文读懂 PyTorch 显存管理机制
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨米阿罗@知乎(已授权) 来源丨https://zhuanlan ...
- LCD不带显存,是如何内存映射屏幕。S5PV210SoC在内存中选一段内存存放颜色数据,通过配置将LCD控制器和这一段内存连接起来,构成映射关系,LCD控制器就自动从显存中读取像素数据传给LCD驱动器
一.LCD控制原理 S5PV210处理器中自带LCD控制器,控制LCD的显示,把 LCD 图像数据从一个位于系统内存的 video buffer 传送到一个外部的 LCD 驱动器接口. 类型: STN ...
- DirectX12_初识之根签名、显存管理、资源屏障、栅栏同步、描述符与描述符堆、捆绑包
一.显卡架构与存储管理 现代的GPU上是有很多可以并行执行命令的引擎的,如下图所示(可参照官网介绍): 它很形象的说明了一个GPU上至少有三大类引擎,一个是复制引擎(Copy engine).一个是计 ...
最新文章
- 沈阳初步建成国内领先的城市级大数据资源库
- 敏捷开发思想及Scrum实践
- OpenGL 统一变量uniform
- 找出OData service出错根源的小技巧
- Navicat Premium 11 12 闪退
- vue项目中简单进行axios封装及响应状态码提示!
- CentOS7安装和配置ftp服务
- jQuery EasyUI API 中文文档 - 菜单按钮(MenuButton)
- python机器学习案例系列教程——逻辑分类/逻辑回归LR/一般线性回归(softmax回归)
- [SQL优化工具]Quest.Central.For.Databases——SQL Tuning for SQL Server
- 前端拼音首字母搜索姓名
- java 如何调用数组_Java中数组的使用
- H3C 双线路 nqa 联动
- 计算机应用后期影音制作,影音制作工具(ImTOO Movie Maker)
- EMC磁珠到底什么样的特性
- 知识普及:KB=Kb?
- Deep Learning L教程(六)
- Atcoder Beginner Contest 174(ABC174) 题解
- C语言-输出一个菱形图。
- 手机Type-C接口能干的事儿,其实远比你想象得多!