opencv读取、显示和保存图片

目录

读取图片

显示图片

保存图片

应用实例

运行截图


读取图片

        读取图片使用imread函数,注意:opencv读取图片,默认颜色通道是BGR,而不是RGB。

def imread(filename, flags=None)

imread函数第一个参数为图片存放的路径,第二个参数是可选项,有3个选项可以进行选择

参数 作用
cv2.IMREAD_COLOR 这个是默认选项,表示原图,可用1代替
cv2.IMREAD_GRAYSCALE 按照灰度图片进行读取,可用0代替
cv2.IMREAD_UNCHANGED 读入完整图片,包括alpha通道,可用-1作为实参替代

显示图片

        使用imshow函数即可

def imshow(winname, mat)

        第一个参数表示窗口名称,第二个参数就是要显示的图像。


保存图片

        保存图片使用imwrite函数

def imwrite(filename, img, params=None)

        第一个参数为要保存的路径和名称,第二个参数为图片,最后一个参数为可选项,选项如下

参数 作用
cv2.CV_IMWRITE_JPEG_QUALITY 设置 .jpeg/.jpg 格式的图片质量,取值为 0-100,默认95,值越高,图片质量越好
cv2.CV_IMWRITE_WEBP_QUALITY 设置 .webp 格式的图片质量,取值为 0-100
cv2.CV_IMWRITE_PNG_COMPRESSION 设置 .png 格式图片的压缩比,取值为 0-9(默认3),数值越大压缩比越大

        该函数有一个返回值,保存成功返回True,失败返回False


应用实例

import cv2

# 读取图片
img = cv2.imread('../images/ysn.jpg')
# 显示图片
cv2.imshow('ysn', img)
# 循环检测用户按下的按键
while True:
    # 得到用户按下的按键的ASCII码
    key = cv2.waitKey(0)
    # 按下q键结束程序
    if key & 0xFF == 113:
        cv2.destroyAllWindows()
        break
    # 按下s键保存图像
    elif key & 0xFF == 115:
        cv2.imwrite('../images/123.png', img)

        上面代码可以实现读取展示图片,当按下s键时保存图片。其中key & 0xFF表示只取整数值的后8位,因为ASCII的值最大为127。

运行截图

        按下s键对图片进行保存,然后按q键结束程序。

猜你喜欢

转载自blog.csdn.net/m0_51545690/article/details/123881477