本节主要学习 Opencv 基本图像处理的图像保存函数 cv2.imwrite()
代码如下:
#coding:utf-8
import cv2
import numpy as np
img = cv2.imread("images/02.jpg",0)
cv2.imshow("image",img)
"""
函数名:cv2.waitKey()
功 能:键盘绑定函数,在特定时间内检测是否有键盘按下,返回按键的 ASCII 值,无按键,返回 -1
64位系统需要与 0xFF 按位与操作
参数一:等待的延时时间,毫秒级,值为 0 时无限期等待
"""
k = cv2.waitKey(0) & 0xFF
if k == 27 :
cv2.destroyAllWindows()
elif k == ord('s') :
"""
函数名:cv2.imwrite( P1 , P2 , P3 )
功 能:图像保存函数
参数一:图像保存的路径、名称
参数二:保存的图像
参数三:可不填写,设置图像压缩,即图像的保存精度
如果保存为 JPG 格式,则为 CV_IMWRITE_JPEG_QUALITY ,本身为 LONG 型,使用时应转化为 int 类型
如果保存为 PNG 格式,则为 CV_IMWRITE_PNG_COMPRESSION ,本身为 LONG 型,使用时应转化为 int 类型
如果保存为 PPM、PGM、PBM,则为 CV_IMWRITE_PXM_BINARY ,
若参数三为 CV_IMWRITE_JPEG_QUALITY ,则范围为 0-100 ,默认值为 95
若参数三为 CV_IMWRITE_PNG_COMPRESSION , 则范围为 0-9 , 默认值为 3
若参数三为 CV_IMWRITE_PXM_BINARY ,则取值为 0 或 1 ,默认值为 1
"""
cv2.imwrite("images/02_gray.jpg" , img )
cv2.imwrite("images/02_jpg1.jpg" , img , [int(cv2.IMWRITE_JPEG_QUALITY) , 100] )
cv2.imwrite("images/02_jpg2.jpg" , img , [int(cv2.IMWRITE_JPEG_QUALITY) , 30] )
cv2.imwrite("images/02_png1.png" , img , [int(cv2.IMWRITE_PNG_COMPRESSION) , 9])
cv2.imwrite("images/02_png2.png" , img , [int(cv2.IMWRITE_PNG_COMPRESSION) ])
cv2.destroyAllWindows()
代码运行前,images 文件夹下的图片如图一所示:
代码运行后,图像显示如图二所示:
按下按键 esc
后,退出图像显示窗口,images
文件夹下文件未产生变化。
再次运行代码,按下按键 s
,退出图像显示窗口,images
文件夹下多出几张图片,正是之前使用 cv2.imwrite()
函数所保存的图片,如图三所示:
各个图片信息如下所示: