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()
相关推荐
硅谷秋水1 小时前
PhysicalWords:一种用于构建机器人操作中潜推理过程的词汇体系
人工智能·机器学习·计算机视觉·语言模型·机器人
架构师伯子明7 小时前
ffmpeg学习4:opencv在音视频领域常用指令
opencv·学习·ffmpeg
.道阻且长.12 小时前
AI 按数据模态分类:计算机视觉、NLP、语音处理,一篇理清
人工智能·计算机视觉·分类
末世灯光20 小时前
ICML 2026|AURA:用视觉原型理解情感,而不只是预测标签
计算机视觉·情感识别·情感计算
LongRunning2 天前
【Linux】RK3568-OpenCV+YOLO(八)
linux·opencv·yolo
疯华整猫2 天前
混淆起初根本不是为了防破解:我用 Trae 把 Android 混淆这二十来年重跑了一遍
android·人工智能·计算机视觉
迪菲赫尔曼2 天前
【基础篇 26】第一次在服务器完成训练:准备数据、断线继续、检查成果与备份
运维·服务器·人工智能·机器学习·计算机视觉
硅谷秋水2 天前
RoboAtom:机器人学习的大规模原子-动作监督
人工智能·机器学习·计算机视觉·机器人
陈嘿萌3 天前
TIP 2026 | 不再混成一张! RealFusion从模态不变性重想图像融合
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
会飞锦鲤4 天前
基于 SVM + HOG 的铸造缺陷检测系统
python·opencv·机器学习·计算机视觉·缺陷检测·图像分类·svm