一、概述
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参数。如果图像数据类型为浮点型,需要进行相应的类型转换才能够保存成功。