
1.2 图像读取
1.2.1 使用OpenCV读取图像
在OpenCV中,可以使用cv2.imread(filename,flags)函数来读取图像。图像应该存储在工作目录中或给出图像的完整路径。
第一个参数filename是图像地址,即使图像路径错误,也不会引发任何错误,但是在打印图像时系统会给出None。
第二个参数flags是一个标志,指定了读取图像的方式。
·cv2.IMREAD_COLOR:加载彩色图。任何图像的透明度都会被忽视,它是默认参数值,可以用1代替。
·cv2.IMREAD_GRAYSCALE:以灰度模式(黑白图像)加载图像,可以用0代替。
·cv2.IMREAD_UNCHANGED:加载图像,包括alpha通道,可以用-1代替。
该函数的返回值是图像数字矩阵,维度如下。
·(M,N):用于灰度图。
·(M,N,3):用于RGB彩色图。
使用cv2.cvtColor(img,color_change)函数对颜色维度进行转换。
第一个参数img是图像对象。
第二个参数color_change是cv2.COLOR_BGR2GRAY(OpenCV定义的常数),用来将BGR通道彩色图转换为灰度图。
该函数返回修改后的图像数字矩阵。
1.2.2 使用Matplotlib读取图像
在Matplotlib中,可以使用matplotlib.pyplot.imread(fname,format=None)函数来读取图像。
其中,fname是图像路径;format是图像格式,默认值是None。如果没有提供图像格式,则imread()函数会从fname中提取图像格式。
该函数的返回值是图像数字矩阵,维度如下。
·(M,N):用于灰度图。
·(M,N,3):用于RGB彩色图。
1.2.3 案例实现——使用OpenCV读取图像
1.实验目标
(1)读取单通道灰度图。
(2)读取三通道彩色图。
(3)将彩色图转换为灰度图。
2.实验环境
实验环境如表1.3所示。
表1.3 实验环境

3.实验步骤
创建源码文件test01_imread_opencv.py。
按照如下步骤编写代码。
步骤一:导入模块

步骤二:读取单通道灰度图

步骤三:读取三通道彩色图

步骤四:将彩色图转换为灰度图

步骤五:运行实验代码
使用如下命令运行实验代码。

运行效果如图1.3~图1.5所示。

图1.3 单通道灰度图

图1.4 三通道彩色图

图1.5 将彩色图转换为灰度图
1.2.4 案例实现——使用Matplotlib读取图像
1.实验目标
使用Matplotlib读取图像,显示图像及其属性信息。
2.实验环境
实验环境如表1.4所示。
表1.4 实验环境

3.实验步骤
创建源码文件test02_imread_matplotlib.py。
按照如下步骤编写代码。
步骤一:导入模块

步骤二:读取图像

步骤三:运行实验代码
使用如下命令运行实验代码。

运行效果如图1.6所示。

图1.6 使用Matplotlib读取图像