2.图像的读取与显示
1.API介绍
API(Application Programming Interface , 应用程序接口),是一些预定义的函数,或指软件系统不同组成部分衔接的约定,目的是提供应用程序与开发人员基于某软件或硬件的访问某一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
2.读取图像
读取图像又叫加载图像,一般是指读取某张图像的信息,加载到存储图像的数据结构中,方便对图像进入深入操作。
读取图像的API是imread,该API实现的功能是:
从指定文件加载图像并返回它,如果无法读取图像(因为缺少文件、权限不正确、不受支持或格式无效),则函数将返回空矩阵。
def imread(filename, flags=None)
filename: 要加载的图像的文件名,可以包括路径
flags:加载图像的方式,默认是None,也就是原图展示。
第二个参数的可以取值如下(取字符和数字皆可):
IMREAD_UNCHANGED = -1 # 原样返回,可以不写
IMREAD_GRAYSCALE = 0 # 将图像转换为单通道灰度图像输出
IMREAD_COLOR = 1 # 将图像转换为3通道BGR彩色图像
IMREAD_ANYDEPTH = 2 # 图像转换为单通道灰度图像,图像大小减小1/2
IMREAD_ANYCOLOR = 4 # 图像转换为单通道灰度图像,图像大小减小1/2
IMREAD_LOAD_GDAL = 8
IMREAD_REDUCED_COLOR_2 = 17 # 将图像转换为3通道BGR彩色图像,图像大小减小1/2
IMREAD_REDUCED_COLOR_4 = 33 # 将图像转换为3通道BGR彩色图像,图像大小减小1/4
IMREAD_REDUCED_COLOR_8 = 65 # 将图像转换为3通道BGR彩色图像,图像大小减小1/8
IMREAD_REDUCED_GRAYSCALE_2 = 16
IMREAD_REDUCED_GRAYSCALE_4 = 32
IMREAD_REDUCED_GRAYSCALE_8 = 64
IMREAD_IGNORE_ORIENTATION = 128
示例:
img = cv.imread('./image/sign.png') # 默认方式
img = cv.imread('./image/sign.png', -1) # 数字形式
img = cv.imread('./image/sign.png', cv.IMREAD_UNCANGED) # 符号形式
3.显示图像
显示图像又叫加载图像,就是将图像显示出来,让我们直观的看到它,可以是看加载或生成的图像。
显示图像和输出不同,输出是输出图像的信息,显示图像是将图像以图像形式显示出来。
注意:
在显示图像的时候,必须要在显示图像的后面添加下面函数。
这个函数的含义是:将无限显示窗口,直到任何一个健按下为止。如果没有这条语句,将不会显示图像。
函数里面的数值是可以变化的。除了0之外,还有一个常用的是25,单位是毫秒。表示的是视频的一帧,如果显示的是视频,就会逐帧显示视频。
读取图像的API 是imshow,该API实现的功能是:
在指定的窗口显示图像,一般都是原大小显示。
API定义如下:
def imshow(winname, mat)
winname: 图像展示的窗口名称。
mat:要展示的图像。
示例:
cv.imshow("show img", img)
cv.waitKey(0)
使用matplotib显示图像
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('./image/sign.png')
plt.imshow(img)
plt.xticks([]), plt.yticks([])
plt.show()