读取图像
OpenCV的imread()函数用于将文件中的图像读入内存,imread()函数支持各种静态图像文件格式,如BMP、PNG、JPEG和TIFF等,示例代码如下。
test2-1.py:读取图像
import cv2
img=cv2.imread('lena.jpg') #读取图像
print(type(img)) #输出数据类型
print(img) #输出图像数组
print(img.shape) #输出数组形状
print(img.dtype) #输出数组元素的数据类型
print(img.size) #输出数组元素的个数
img.shape的输出结果为(512, 512, 3),说明表示彩色图像的数组是一个三维数组,3个值依次表示图像的高度、宽度和通道数;图像的分辨率为512×512。
代码中img.dtypes的输出结果为uint8,说明每个数组元素用一个字节(8位)保存,每个数组元素为一个像素的B、G和R通道的颜色值,颜色值取值范围为[0,255]。
代码中img.size的输出结果为786432,等于数组形状的3个维度大小的乘积,即512×512×3。
imread()函数的完整格式如下。
img=cv2.imread(filename,flag)
其中,filename为图像文件名,flag为图像读取格式标志,如表2-3所示。imread()函数在正确读取图像文件时,返回表示图像的NumPy数组;否则返回NULL。