Python OpenCV基础:读取、显示与保存图片完整指南

顾言
顾言
发布时间:2026-10-14| 2人浏览过
原创

本文详细介绍Python中OpenCV库(cv2)处理图像的核心功能。涵盖使用cv2.imread读取不同格式图片,通过cv2.imshow和waitKey正确显示窗口,以及利用cv2.imwrite保存图像并设置JPEG质量与PNG压缩级别。此外,还讲解了图像翻转、复制及RGB与灰度图转换的具体实现方法,帮助开发者快速掌握基础图像处理技能。

1. 读取图片

调用cv2.imread(filepath, flags)函数即可载入图像文件。

其中filepath参数指定待读取图片的完整文件路径。

flags参数用于定义图像加载时的标志位选项。

cv2.IMREAD_COLOR为默认值,表示以彩色模式加载图片,自动忽略Alpha透明通道。

cv2.IMREAD_GRAYSCALE表示将图片以灰度模式加载。

cv2.IMREAD_UNCHANGED表示保留图片原始数据,包括Alpha通道信息。

import numpy as np import cv2 img = cv2.imread('1.jpg', cv2.IMREAD_GRAYSCALE)

2. 显示图片


cv2.imshow(wname,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.destroyWindow(wname)

通过cv2.imshow(wname, img)函数在窗口中展示图像。wname参数设定窗口标题,img参数为imread读取到的图像数据,窗口尺寸会自动适配图像大小。

cv2.waitKey()用于等待键盘输入,参数单位为毫秒。若在指定时间内按下任意键,函数返回该键的ASCII码并继续执行;若超时未按键则返回-1。设置参数为0表示无限等待。若不调用此函数,窗口将瞬间关闭导致无法查看图像。

cv2.destroyAllWindows()用于销毁所有已创建的显示窗口。

cv2.destroyWindow(wname)用于销毁指定名称的窗口。

保存图片


cv2.imwrite(filepahe, img, flag)

cv2.imwrite()函数的第一个参数filepath指定保存文件的路径及文件名,例如:


filepath='"D\\TooBox\\0.jpg"

第二个参数img为待保存的图像对象。可选的第三个参数flag用于特定格式的设置:对于JPEG格式,该值表示图像质量,范围为0至100的整数,默认值为95;对于PNG格式,该值表示压缩级别,默认值为3。

注意:cv2.IMWRITE_JPEG_QUALITY参数的类型必须为long,在传递时需转换为int类型。

cv2.IMWRITE_PNG_COMPRESSION参数取值范围为0到9,数值越高图像文件越小。


cv2.imwrite('1.png', img, [int(cv2.IMWRITE_JPEG_QUALITY),95])
cv2.imwrite('1.png',img,[int(cv2.IMWRITE_PNG_COMPRESSION),9])

图片操作

图片翻转

使用cv2.flip(img, flipcode)函数实现图像翻转,flipcode参数控制翻转方式。

当flipcode等于0时,图像沿x轴进行翻转。

当flipcode大于0时,图像沿y轴进行翻转。

当flipcode小于0时,图像沿x轴和y轴同时进行翻转。


imgflip=cv2.flip(img,1)

图片复制


imgcopy=img.copy()

颜色空间转换

将RGB彩色图像转换为灰度图像。


img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

将灰度图像转换回RGB彩色图像。


img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB)

总结

至此,关于Python利用cv2模块进行图片读取、显示和保存的教程已介绍完毕。如需了解更多Python cv2相关技术,可查阅本站往期文章或继续浏览后续内容,感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。