使用OpenCV进行图片读取与写入的教程

0 下载量 101 浏览量 更新于2024-08-31 收藏 303KB PDF 举报
"OpenCV是计算机视觉领域广泛使用的库,用于图像处理和计算机视觉任务。本文将探讨如何使用OpenCV在Python中实现读取和写入图片的操作。 1. **读取图片** 使用`cv2.imread()`函数可以从磁盘读取图片。该函数接受两个参数:`filename`是图片文件的路径,`flags`则控制图片的读取方式。如果`flags`设置为0,图片将以灰度模式读取;设置为1(默认值),则读取为彩色图片。以下是一个简单的示例: ```python import cv2 img = cv2.imread("img.jpg", 1) cv2.imshow('img', img) cv2.waitKey(0) ``` `cv2.imshow()`函数用于显示图片,`winname`是窗口的名字,`mat`是图片数据。`cv2.waitKey(0)`会暂停程序执行,直到用户按下任意键,确保图片能被正确显示。 2. **图片写入** 要将图片写入文件,可以使用`cv2.imwrite()`函数。它需要两个参数:`filename`为保存图片的路径,`img`是待写入的图片数据。例如: ```python img = cv2.imread("img.jpg", 1) cv2.imwrite('img1.jpg', img) ``` 这将把`img`中的数据保存到名为`img1.jpg`的文件中。 3. **图像质量与压缩** - **JPEG** 图片格式采用有损压缩,压缩比例越高,图片大小越小,但可能会导致图像质量下降,出现马赛克现象。可以通过设置`cv2.IMWRITE_JPEG_QUALITY`标志来调整JPEG质量。例如,设置质量为50: ```python img = cv2.imread("img.jpg", 1) cv2.imwrite('imgTest2.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 50]) ``` - **PNG** 图片格式支持无损压缩,可以保留原始图像数据。此外,PNG还支持透明度设置。例如: ```python img = cv2.imread("img.jpg", 1) cv2.imwrite('imgTest1.png', img) ``` 通过这些基本操作,开发者可以轻松地在OpenCV中处理图片的读取和保存,同时也能够根据需求调整图片的压缩质量和格式。对于更复杂的图像处理任务,如图像分析、特征提取或图像变换,OpenCV提供了丰富的功能和算法供进一步探索。"