OpenCV 读取和保存图像
OpenCV读取图像
OpenCV允许我们对图像执行多个操作,但为此需要读取图像文件作为输入,然后我们可以对其进行各种操作。OpenCV提供了以下用于读取和写入图像的函数。
OpenCV imread函数
imread()函数从指定的文件加载图像并返回。语法为:
cv2.imread(filename[,flag])
参数:
filename: 要加载的文件名
flag: 标志指定加载图像的颜色类型:
- CV_LOAD_IMAGE_ANYDEPTH – 如果设置为该标志,则在输入具有相应深度时,将返回16位/32位图像,否则将转换为8位图像。
- CV_LOAD_IMAGE_COLOR – 如果设置为该标志,它总是返回转换后的彩色图像。
- C V_LOAD_IMAGE_GRAYSCALE – 如果设置为该标志,它总是将图像转换为灰度图像。
imread() 函数返回一个矩阵,如果由于不支持的文件格式、缺少文件、不支持或无效格式而无法读取图像。目前支持以下文件格式。
窗口位图 - *.bmp
, *.dib
JPEG文件 - *.jpeg
, *.jpg
, *.jpe
可移植网络图形 - *.png
可移植图像格式 - *.pbm
, *.pgm
, *.ppm
TIFF文件 - *.tiff
, *.tif
注意: 解码后的彩色图像的通道将按BGR顺序存储。
让我们考虑以下示例:
#importing the opencv module
import cv2
# using imread('path') and 0 denotes read as grayscale image
img = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat.jpeg',1)
#This is using for display the image
cv2.imshow('image',img)
cv2.waitKey(3) # This is necessary to be required so that the image doesn't close immediately.
#It will run continuously until the key press.
cv2.destroyAllWindows()
输出: 它将显示以下图像。
保存 OpenCV 图片
OpenCV 的 imwrite() 函数用于将图像保存到指定的文件中。文件的扩展名定义了图像的格式。以下是语法:
cv2.imwrite(filename, img[,params])
参数:
filename- 要加载的文件的名称
image- 要保存的图像
params- 目前支持以下参数:
- JPEG的质量参数可以从0到100。默认值为95。
- PNG的质量参数可以是从0到9的压缩级别。默认值为1。
- PPM、PGM或PBM的参数可以是0或1的二进制格式标志。默认值为1。
让我们看一个示例:
import cv2
# read image as grey scale
img = cv2.imread(r'C:\Users\DEVANSH SHARMA\cat.jpeg', 1)
# save image
status = cv2.imwrite(r'C:\Users\DEVANSH SHARMA\cat.jpeg', 0, img)
print("Image written to file-system : ", status)
输出:
Image written to file-system : True
如果imwrite()函数返回True,意味着文件已成功写入指定的文件。