![计算机视觉应用与实战](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=1738829812-NbLB2s0IJ7Ft6t0dWCCekSYWesNTpJiZ-0-c845a3fc51d8b645a68275fc9fd16a59)
① 该实验平台可用于各院校和培训机构人工智能课程教学。如果是个人读者阅读本书,也可以在普通计算机上部署与实施案例的代码,不受影响。
3.实验步骤
创建源码文件test01_imshow_opencv.py,用来实现使用OpenCV显示图像。
按照如下步骤编写代码。
步骤一:导入模块
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_2.jpg?sign=1738829812-LCdgFQgxM9BfntiURyoJBrvuBks34nAl-0-212a65a1b3882c4ffbf5cd97306c76e9)
步骤二:读取图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_3.jpg?sign=1738829812-PMteYg2An9wI1K3mtePDRFpohd9q1lIn-0-90c483031b61570d7089d2f62b0d8cd5)
步骤三:使用OpenCV显示图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_4.jpg?sign=1738829812-TOilL6db3Td5xphVphWvgvQn772QjvZn-0-c97a652d13207367d86587156ea11f0d)
步骤四:运行实验代码
使用如下命令运行实验代码。(注:如果是Ubuntu环境,可能需要运行python3,以下同)
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_5.jpg?sign=1738829812-f2wrrCqkPEXZbqMdIZPpYpmYUJycTrsJ-0-3200203fb2b671172968cefa0ac19f82)
运行效果如图1.1所示。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_23_6.jpg?sign=1738829812-qpgTidkTEBnUcPz9sRH923zaCOHknKst-0-dafbd49b340287dec5b5363c8727046c)
图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=1738829812-gNaePGtwqkkAkCaFmSNEzn9nVWZhkcIi-0-92250421d62c5acb5cd958255062c989)
3.实验步骤
创建源码文件test02_imshow_matplotlib.py,用来实现使用Matplotlib显示图像。
按照如下步骤编写代码。
步骤一:导入模块
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_2.jpg?sign=1738829812-pSrGTUC9fUII1CuLjeyaCQ0HqYtGR12O-0-58bbe2d3338a70a70f6a42172513edb4)
步骤二:读取图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_3.jpg?sign=1738829812-Zs0emeyg6MMXjUm7wEbwtsdmazk2QU6v-0-39104a2d72687d7a24c965bbe4769c79)
步骤三:将颜色通道从BGR转换为RGB
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_4.jpg?sign=1738829812-udXbW35dcdWbhkDNpSmoFzqLQtJSGUXG-0-8fb9c3d33b7e54ce527d88b6f1aa1b21)
步骤四:使用Matplotlib显示图像
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_24_5.jpg?sign=1738829812-vrM61EZBcALBNXGohNA3sW6FfMVcy7Vk-0-ae38cfd506458fd322ee24283b2cea27)
步骤五:运行实验代码
使用如下命令运行实验代码。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_25_1.jpg?sign=1738829812-Z0tfFSYQAkZIxImgmrUGOwHFSvEYzGw0-0-4566e1feb37a6726269dc7ef3f7dfa85)
运行效果如图1.2所示。
![](https://epubservercos.yuewen.com/254F10/23950114009720806/epubprivate/OEBPS/Images/43251_25_2.jpg?sign=1738829812-dooCmzbEqkKovaLGB5B7EsguBunhlbQz-0-a73c3cd9ff06bade9a9f80a47517d53b)
图1.2 使用Matplotlib显示图像