opencv4学习笔记--图片的读取、显示和保存

# opencv实现读取、显示和保存图片
"""
读取图像
使用cv.imread()函数读取图像。图像应该在工作目录或图像的完整路径应给出。

第二个参数是一个标志,它指定了读取图像的方式。

cv.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
cv.IMREAD_GRAYSCALE:以灰度模式加载图像
cv.IMREAD_UNCHANGED:加载图像,包括alpha通道
注意 除了这三个标志,你可以分别简单地传递整数1、0或-1。
"""
# 导入opencv模块
import cv2 as cv
img = cv.imread('lena.png',cv.IMREAD_COLOR)  # 括号里面后一个参数表示读取出来的图片的颜色为RGB,可以用1表示最后一个参数

# 定义读取灰度图像
gray = cv.imread("lena.png",cv.IMREAD_GRAYSCALE)  # 表示灰度图像,可以用0表示,如果给出错误的图片名称或者路径,函数不会提示

img2 = cv.imread('lena.png',-1)
cv.namedWindow('src',cv.WINDOW_AUTOSIZE) # 定义显示图片的窗口的名称,并且第二个参数设置窗口的尺寸是自动大小的,不能改变
# 定义显示灰度窗口可以改变窗口的大小
cv.namedWindow('gray',cv.WINDOW_NORMAL)

cv.imshow('gray',gray)
cv.imshow('src',img)
cv.imshow('unchanged',img2)
k = cv.waitKey(0)  # 让图像保持不动,不然读取出来闪退,也可以设置其他值,但是可能图片显示的时间不一样
"""
v.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。该函数等待任何键盘事件指定的毫秒。如果您在这段时间内按下任何键,程序将继续运行。
如果0被传递,它将无限期地等待一次敲击键。它也可以设置为检测特定的按键
"""
cv.destroyWindow('src')  # 删除上面名称为src的窗口
"""
cv.destroyAllWindows()只会破坏我们创建的所有窗口。如果要销毁任何特定的窗口,请使用函数
cv.destroyWindow()在其中传递确切的窗口名称作为参数。
"""


if k == 27:  # 等待ESC退出
    cv.destroyAllWindows()  # 删除所有的窗口
elif k == ord('s'):  # 按s保存
    # 将图片另存为
    cv.imwrite("newlena.jpg",gray)  # 将灰度图像另存为新的图像
    cv.destroyAllWindows()  # 删除所有的窗口


# 使用matplotlib绘图
"""
Matplotlib是Python的绘图库,可为你提供多种绘图方法。你将在接下来的文章中看到它们。在这里,你将学习如何使用Matplotlib显示图像。
你可以使用Matplotlib缩放图像,保存图像等。
"""
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
img = cv.imread('H:/opencv-python/opencv-master/opencv-master/samples/data/messi5.jpg',0)
plt.imshow(img,cmap='gray',interpolation = 'bicubic')
plt.xticks(),plt.yticks()  # 隐藏x轴和y轴上的刻度值
plt.show()

效果显示如下:

你可能感兴趣的:(opencv,学习)