OpenCV基本操(IO操作,读取、显示、保存)

图像的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()

参数:

  1. 显示图像窗口名称,以字符串类型表示
  2. 要加载的图像
    在这里插入图片描述

注意:在调用图像API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应的情况,并且图像无法显示出来

另外我们也可以使用matplotlib对图像进行展示

  1. 如果读取的是彩色图像(三个通道·)
'''
读取图像的方式:

**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()

在这里插入图片描述

  1. 如果读取的是灰度图(一个通道)
plt.imshow(img,cmap='gray')   #使用灰度色彩映射显示灰度图像
plt.show()  #显示图像

1.3保存图像

cv.imwrite()

参数:

  1. 文件名,要保存在哪里(注意:要具体到文件名)
  2. 要保存的图像
#保存图像
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操作时,也需要注意异常情况的处理,例如文件不存在、读取错误等问题,需要通过异常处理机制进行处理。

综上所述,OpenCV是一个强大的图像处理库,可以实现各种图像处理和计算机视觉任务。在进行IO操作时,需要注意图像格式与通道数、文件路径和命名规则、显示窗口和事件处理、图像压缩和质量控制、内存管理和异常处理等问题。遵循这些注意事项,可以更好地使用OpenCV进行图像IO操作,并实现各种图像处理任务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值