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()
相关推荐
Lun3866buzha3 小时前
篮球场景目标检测与定位_YOLO11-RFPN实现详解
人工智能·目标检测·计算机视觉
Coding茶水间5 小时前
基于深度学习的非机动车头盔检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
roman_日积跬步-终至千里9 小时前
【计算机视觉(16)】语义理解-训练神经网络1_激活_预处理_初始化_BN
人工智能·神经网络·计算机视觉
一个没有感情的程序猿10 小时前
前端实现人体骨架检测与姿态对比:基于 MediaPipe 的完整方案
机器学习·计算机视觉·前端框架·开源
ccLianLian11 小时前
计算机视觉·LaVG
人工智能·计算机视觉
CoovallyAIHub12 小时前
从“模仿”到“进化”!华科&小米开源MindDrive:在线强化学习重塑「语言-动作」闭环驾驶
深度学习·算法·计算机视觉
梦梦c12 小时前
检查数据集信息
人工智能·计算机视觉
CoovallyAIHub12 小时前
SAM 真的开始「分割一切」,从图像到声音,Meta 开源 SAM Audio
深度学习·算法·计算机视觉
roman_日积跬步-终至千里13 小时前
【计算机视觉(19)】语义理解-CNN应用_目标检测_语义分割
目标检测·计算机视觉·cnn
这张生成的图像能检测吗13 小时前
(论文速读)LCT:用于RGB-D突出物体检测的轻型跨模态变压器
图像处理·目标检测·计算机视觉·深度估计·轻量化模型·跨模态融合·rgb-d