图像的IO操作,读取和保存方法
1.1 API
cv.imread()
参数:
要读取的图像
读取图像的方式:
cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1
cv.IMREAD*GRAYSCALE :以灰度模式加载图像 标志: 0
cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加载图像模式。 标志: -1
可以使用1、0或者-1来替代上面三个标志
1.2显示图像
cv.imshow()
参数:
- 显示图像窗口名称,以字符串类型表示
- 要加载的图像
注意:在调用图像API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应的情况,并且图像无法显示出来
另外我们也可以使用matplotlib对图像进行展示
- 如果读取的是彩色图像(三个通道·)
'''
读取图像的方式:
**cv.IMREAD*COLOR**:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1
**cv.IMREAD*GRAYSCALE** :以灰度模式加载图像 标志: 0
**cv.IMREAD_UNCHANGED** :包括alpha通道(透明度通道)的加载图像模式。 标志: -1
可以使用**1、0或者-1**来替代上面三个标志
'''
import cv2
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
#以灰度图的形式读取图像
img = cv.imread('lena.png')
cv.imshow('image1',img)
cv2.waitKey(0)
#在matplotlib中显示
plt.imshow(img[:,:,::-1]) #图像按BGR顺序存储,显示的时候顺序是RGB通道,所以需要翻转成RGB
plt.show()
- 如果读取的是灰度图(一个通道)
plt.imshow(img,cmap='gray') #使用灰度色彩映射显示灰度图像
plt.show() #显示图像
1.3保存图像
cv.imwrite()
参数:
- 文件名,要保存在哪里(注意:要具体到文件名)
- 要保存的图像
#保存图像
cv.imwrite(r"E:\All_in\opencv\lena_saved.png",img)
注意事项:
OpenCV是一个强大的图像处理库,可以实现各种图像处理和计算机视觉任务。在使用OpenCV进行IO操作(如读取、显示、保存)时需要注意以下几点:
图像格式与通道数
在进行图像IO操作时,需要了解输入/输出的图像格式和通道数。一般情况下,OpenCV支持常见的图像格式(如灰度图、BGR图、RGBA图等)和通道数(如单通道、三通道、四通道等)。不同的图像格式和通道数对应着不同的读取、显示和保存方式,需要根据实际情况选择相应的IO函数。
文件路径和命名规则
在进行图像IO操作时,需要指定文件路径和命名规则。文件路径用于指定图像文件的存储位置,可以是相对路径或绝对路径;命名规则用于指定图像文件的名称和后缀,常见的包括jpg、png、bmp等。需要注意的是,在指定文件路径和命名规则时应确保合法性,例如避免使用特殊字符和中文命名等问题。
显示窗口和事件处理
在使用OpenCV进行图像显示时,需要创建一个窗口用于显示图像。窗口的创建和命名可以通过特定函数实现,同时还需要设定窗口的大小和位置。另外,在窗口显示图像时需要考虑事件的处理,例如鼠标点击、键盘按键等,需要通过回调函数对事件进行响应。
图像压缩和质量控制
在进行图像保存时,需要考虑图像压缩和质量控制等因素。OpenCV支持多种图像压缩格式,可以通过参数传递来指定压缩格式和压缩比率。同时还可以通过设定图像质量参数来控制保存图像的质量和精度。
内存管理和异常处理
在进行IO操作时还需要考虑内存管理和异常处理。在读取、显示和保存图像时,可能会涉及到大量的内存分配和释放,需要注意防止内存泄漏等问题。另外,在进行IO操作时,也需要注意异常情况的处理,例如文件不存在、读取错误等问题,需要通过异常处理机制进行处理。文章来源:https://www.toymoban.com/news/detail-693414.html
综上所述,OpenCV是一个强大的图像处理库,可以实现各种图像处理和计算机视觉任务。在进行IO操作时,需要注意图像格式与通道数、文件路径和命名规则、显示窗口和事件处理、图像压缩和质量控制、内存管理和异常处理等问题。遵循这些注意事项,可以更好地使用OpenCV进行图像IO操作,并实现各种图像处理任务。文章来源地址https://www.toymoban.com/news/detail-693414.html
到了这里,关于OpenCV基本操(IO操作,读取、显示、保存)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!