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


    图像的IO操作,读取和保存方法

    1.1 API

    cv.imread()
    
    • 1

    参数:

    要读取的图像

    读取图像的方式:

    cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1

    cv.IMREAD*GRAYSCALE :以灰度模式加载图像 标志: 0

    cv.IMREAD_UNCHANGED :包括alpha通道(透明通道)的加载图像模式。 标志: -1

    可以使用1、0或者-1来替代上面三个标志

    1.2显示图像

    cv.imshow()
    
    • 1

    参数:

    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    在这里插入图片描述

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

    1.3保存图像

    cv.imwrite()
    
    • 1

    参数:

    1. 文件名,要保存在哪里(注意:要具体到文件名)
    2. 要保存的图像
    #保存图像
    cv.imwrite(r"E:\All_in\opencv\lena_saved.png",img)
    
    • 1
    • 2

    注意事项:
    OpenCV是一个强大的图像处理库,可以实现各种图像处理和计算机视觉任务。在使用OpenCV进行IO操作(如读取、显示、保存)时需要注意以下几点:

    图像格式与通道数
    在进行图像IO操作时,需要了解输入/输出的图像格式和通道数。一般情况下,OpenCV支持常见的图像格式(如灰度图、BGR图、RGBA图等)和通道数(如单通道、三通道、四通道等)。不同的图像格式和通道数对应着不同的读取、显示和保存方式,需要根据实际情况选择相应的IO函数。

    文件路径和命名规则
    在进行图像IO操作时,需要指定文件路径和命名规则。文件路径用于指定图像文件的存储位置,可以是相对路径或绝对路径;命名规则用于指定图像文件的名称和后缀,常见的包括jpg、png、bmp等。需要注意的是,在指定文件路径和命名规则时应确保合法性,例如避免使用特殊字符和中文命名等问题。

    显示窗口和事件处理
    在使用OpenCV进行图像显示时,需要创建一个窗口用于显示图像。窗口的创建和命名可以通过特定函数实现,同时还需要设定窗口的大小和位置。另外,在窗口显示图像时需要考虑事件的处理,例如鼠标点击、键盘按键等,需要通过回调函数对事件进行响应。

    图像压缩和质量控制
    在进行图像保存时,需要考虑图像压缩和质量控制等因素。OpenCV支持多种图像压缩格式,可以通过参数传递来指定压缩格式和压缩比率。同时还可以通过设定图像质量参数来控制保存图像的质量和精度。

    内存管理和异常处理
    在进行IO操作时还需要考虑内存管理和异常处理。在读取、显示和保存图像时,可能会涉及到大量的内存分配和释放,需要注意防止内存泄漏等问题。另外,在进行IO操作时,也需要注意异常情况的处理,例如文件不存在、读取错误等问题,需要通过异常处理机制进行处理。

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

  • 相关阅读:
    【SpringBoot定时任务篇】-----Quartz以及Task详解
    【无标题】
    攻防世界流量分析1
    什么是正向代理和反向代理
    2024级199管理类联考之数学基础(下篇)
    【 C++ 】vector迭代器失效与深浅拷贝问题
    团队管理|如何提高技术 Leader 的思考技巧?
    java基础之策略模式[26]
    SQL ORDER BY Keyword(按关键字排序)
    2022 年全国职业院校技能大赛(中职组) 网络安全竞赛试题A 模块评分标准
  • 原文地址:https://blog.csdn.net/qq_53545309/article/details/132548884