您的位置:

详解pythoncv2.imwrite函数

一、概述

Pythoncv2是OpenCV的Python极客包,opencv-python是基于OpenCV的Python支持工具包。Pythoncv2提供了一系列的函数,其中imwrite是其中之一。该函数具有保存图片的功能,可以将OpenCV中处理的图像保存在本地硬盘。

二、函数参数

OpenCV的imwrite函数具有以下参数:

cv2.imwrite(filename, img, params=[int(1)])

  • filename:要保存的文件名
  • img:待保存的图像
  • params:保存图像时指定的参数,默认值是1

其中,params参数是一个元组类型,含有多个图像保存格式标志,具体含义可以参考cv2.imencode()函数的帮助文档。

三、代码示例

import cv2

img = cv2.imread("test.jpg")
cv2.imwrite("test_output.png", img)

以上代码的作用是:读取test.jpg文件,将处理后的图像保存在test_output.png中。

四、注意事项

1、filename参数必须是一个带有扩展名的文件名,如test.png、test.jpg等。

2、如果文件名中包含中文字符,则需要使用encode()方法将其转换成bytes类型,如filename.encode('gbk')。

3、如果文件名不存在,则函数不会报错,但是保存失败。

4、保存图像时可以指定保存的格式。如需要保存为jpg格式,则可以指定params参数如下:

cv2.imwrite("test_output.jpg", img, [cv2.IMWRITE_JPEG_QUALITY, 90])

其中,cv2.IMWRITE_JPEG_QUALITY表示保存为JPEG格式,90表示保存的质量,范围是0~100。

5、如果图像中的数据类型是浮点型,需要将其乘以255,再转换成整型类型进行保存,如下所示:

img = img.astype('float32')
img = img*255
img = img.astype('uint8')
cv2.imwrite("test_output.png", img)

五、总结

Pythoncv2.imwite函数可以方便地将OpenCV处理的图像保存在本地硬盘上。完成保存操作前,需要注意参数的正确性及文件名的有效性。如果需要保存为其他格式,可以指定params参数。如果图像数据类型为浮点型,需要进行相应的类型转换才能够保存成功。