OpenCV - 图像的IO操作

目录

[1. 读取图像 - cv.imread()](#1. 读取图像 - cv.imread())

[2. 显示图像 - cv.imshow()](#2. 显示图像 - cv.imshow())

[3. 保存图像 - imwrite()](#3. 保存图像 - imwrite())

[4. 总结](#4. 总结)


1. 读取图像 - cv.imread()

在OpenCV图像处理中,**API指的是OpenCV库提供的应用程序接口,**本质是一系列封装好的函数、类或方法,专门用于调用OpenCV的图像处理的能力,无需开发者手动编写底层算法。简单来说,这些API就是OpenCV给开发者的"工具按钮"。

读取图像要使用的API为:

python 复制代码
cv.imread('图片路径', 标志)

参数1:要读取图像的路径

**•**参数2:读取方式的标志

  1. cv.IMREAD_COLOR 或 1:以彩色模式加载图像,任何图像的透明度都将被忽略,这里默认参数

  2. cv.IMREAD_GRAYSCALE 或 0:以灰度模式加载图像

  3. cv.IMREAD_UNCHANGED 或 -1:按原样读取,包括alpha通道的加载图像模式

可以使用1、0、-1来分别代表上面三个标志

参考代码:

python 复制代码
import numpy as np
import cv2 as cv
# 以灰度形式读取图像
img_gray = cv.imread('test1.jpg', 0)
# 以彩色模式读取
img_color = cv.imread('test1.jpg', 1)

注意:如果加载的路径有错误,不会报错,会返回一个None值

2. 显示图像 - cv.imshow()

这个函数会创建一个窗口,并在里面显示图片矩阵

显示图像要使用的API为:

python 复制代码
cv.imshow('窗口名称', 图像矩阵)

参数1:显示图像的窗口名称,以字符串类型表示

参数2:要加载的图像

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

参考代码:

python 复制代码
#opencv中显示
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

1. cv2.waitKey(0) :这是一个键盘绑定函数,非常重要!

参数 0 表示程序会无期限等待用户的按键操作

如果你写成 cv2.waitKey(5000),则表示等待5秒(5000毫秒)后自动关闭窗口。

2. cv2.destroyAllWindows():销毁我们创建的所有窗口。这是一个好的编程习惯,用来清理内存。

为什么必须要有waitKey

因为没有它,窗口会一闪而过,你根本来不及看。waitKey让程序暂停,等你按下任意键后再继续执行后面的销毁命令。

3. 保存图像 - imwrite()

这个函数将处理后的图像矩阵(NumPy数组)保存成一个图片文件。

保存图像要使用的API为:

python 复制代码
cv.imwrite('保存的文件名', 图像矩阵)

参数1:文件名要保存在哪里,OpenCV会根据你指定的扩展名(如.jpg, .png)来决定保存的格式。

参数1:要保存的图像,你要保存的那个图像变量(比如我们刚才读进来的img,或者处理过的灰度图img_gray)。

python 复制代码
cv.imwrite('test1.png', img)

4. 总结

python 复制代码
import numpy as np
import cv2 as cv
 
# 1. 读取图像
img = cv.inread('test1.jpg', 0)
 
# 2. 显示图像
cv.imshow('image', img)
cv.waitKey(0)

# 3. 保存图像
cv.imwrite('test2.png', img)

# 最后关闭所有窗口
cv.destroyAllWindows()
相关推荐
Antonio9151 小时前
【图像处理】图像的基础几何变换
图像处理·人工智能·计算机视觉
智驱力人工智能2 小时前
基于视觉分析的人脸联动使用手机检测系统 智能安全管理新突破 人脸与手机行为联动检测 多模态融合人脸与手机行为分析模型
算法·安全·目标检测·计算机视觉·智能手机·视觉检测·边缘计算
qzhqbb6 小时前
神经网络 - 卷积神经网络
神经网络·计算机视觉·cnn
点云SLAM8 小时前
弱纹理图像特征匹配算法推荐汇总
人工智能·深度学习·算法·计算机视觉·机器人·slam·弱纹理图像特征匹配
王哈哈^_^9 小时前
YOLOv11视觉检测实战:安全距离测算全解析
人工智能·数码相机·算法·yolo·计算机视觉·目标跟踪·视觉检测
AI technophile9 小时前
OpenCV计算机视觉实战(29)——OpenCV DNN模块
opencv·计算机视觉·dnn
深度学习lover9 小时前
<数据集>yolo航拍交通目标识别数据集<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·航拍交通目标识别
王哈哈^_^11 小时前
【数据集+完整源码】水稻病害数据集,yolov8水稻病害检测数据集 6715 张,目标检测水稻识别算法实战训推教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
俊俊谢12 小时前
OpenCV环境配置(QT 6.6.1 MSVC2019 64bit + OpenCV – 4.12.0)
qt·opencv·msvc
却道天凉_好个秋12 小时前
OpenCV(十六):椭圆的绘制
opencv·计算机视觉