![计算机视觉应用与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/543/44819543/b_44819543.jpg)
1.1 图像显示
1.1.1 使用OpenCV显示图像
OpenCV是计算机视觉中经典的专用库,具备支持多语言、跨平台的优点,功能强大。
OpenCV-Python为OpenCV提供了Python接口,这样使用者在Python中能够调用C/C++,从而在保证易读性和运行效率的前提下,实现所需的功能。
使用cv2.imshow(window_name,img)函数在窗口中显示图像,窗口会自动适应不同的图像尺寸。
第一个参数window_name是窗口名称,是一个字符串,使用者可以根据需要创建任意多个窗口;第二个参数img是图像名称。
使用者既可以根据需要创建任意多个窗口,也可以使用不同的窗口名称。
1.1.2 使用Matplotlib显示图像
Matplotlib也是一种常用的图像处理库,可以使用matplotlib.pyplot.imshow(img)函数来显示图像,参数img代表图像对象,相关参数较少,使用便捷。
需要注意的是,使用OpenCV读取的图像的颜色通道为BGR(蓝绿红),而Matplotlib使用的颜色通道为RGB(红绿蓝),所以需要进行颜色通道转换。先将OpenCV读取的BGR(蓝绿红)颜色通道的图像转换为 RGB(红绿蓝)颜色通道的图像,再使用 Matplotlib 正确显示图像。
1.1.3 案例实现——使用OpenCV显示图像
1.实验目标
提供一张图像,使用OpenCV显示该图像。
2.实验环境
实验环境如表1.1所示。
表1.1 实验环境
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_1.jpg?sign=1739014190-BKo5zFkfD34KYtfCtJtzrXYFo87qLLnW-0-350d812ef825773b70c0fb951ef92fc6)
① 该实验平台可用于各院校和培训机构人工智能课程教学。如果是个人读者阅读本书,也可以在普通计算机上部署与实施案例的代码,不受影响。
3.实验步骤
创建源码文件test01_imshow_opencv.py,用来实现使用OpenCV显示图像。
按照如下步骤编写代码。
步骤一:导入模块
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_2.jpg?sign=1739014190-3w4toagVJu7hndv8dpfyzZhEfkceh4oa-0-a79aa9f9fe47d7c29b3ecff978f9a5e4)
步骤二:读取图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_3.jpg?sign=1739014190-KA0hSDLuV4QuldzQSxfaAXC9s55jP4Qg-0-2cf5ab7516d81bb745cd9d16a158cc7c)
步骤三:使用OpenCV显示图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_4.jpg?sign=1739014190-Wt4wjjqrOzQVvRVv3H4GLhfEBuLjt16w-0-078ac99036554ae862bfccd9d199ae93)
步骤四:运行实验代码
使用如下命令运行实验代码。(注:如果是Ubuntu环境,可能需要运行python3,以下同)
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_5.jpg?sign=1739014190-0kbFHxBbw4hCUJH7ysknSaJfpyTcTjQD-0-2b6e0a5af508a87f7d335b4a5a58076b)
运行效果如图1.1所示。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_6.jpg?sign=1739014190-aOSDrq6RZ3UUnSe5vULuigaKAneKOQXY-0-bad7907488f2d981bb17cbda7cfe4fa9)
图1.1 使用OpenCV显示图像
1.1.4 案例实现——使用Matplotlib显示图像
1.实验目标
提供一张图像,使用Matplotlib显示该图像。
2.实验环境
实验环境如表1.2所示。
表1.2 实验环境
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_1.jpg?sign=1739014190-x3z6k5CdBptF9GYwDhnn98LvDE9lZKJS-0-abfc2f1a6a2aee0b7ff032858cd78eb6)
3.实验步骤
创建源码文件test02_imshow_matplotlib.py,用来实现使用Matplotlib显示图像。
按照如下步骤编写代码。
步骤一:导入模块
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_2.jpg?sign=1739014190-niD9wxn3EBAiavrbsYkOtZHLRwuP4c1a-0-6577865ed52c3d0be8b45ae14231a45b)
步骤二:读取图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_3.jpg?sign=1739014190-M53iOS9zCg27NQTn49CXDsn9qhKHKidw-0-8b604d81f71c8ab7e80d4856fc2c828c)
步骤三:将颜色通道从BGR转换为RGB
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_4.jpg?sign=1739014190-DW3INEP7uuaagoytbDmm1EuGqj7Au8wk-0-b17f4067eb77d653e564b22a32e91ca6)
步骤四:使用Matplotlib显示图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_5.jpg?sign=1739014190-rdPyQJCRYyz1JFTytgQbiGfZhh80ukUQ-0-b9f0414b012ceecb429c91eb71844420)
步骤五:运行实验代码
使用如下命令运行实验代码。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_25_1.jpg?sign=1739014190-bfaGQiZhLI8mNlxTorBnczj4OpJQhwo6-0-3ffcec8bc4102c8a620c4149c802530b)
运行效果如图1.2所示。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_25_2.jpg?sign=1739014190-TH5mcLKLrPoiJYQNKDl1qR80YmwNhTVS-0-ded685b850d72a851ff5384b30ec0a87)
图1.2 使用Matplotlib显示图像