学做网站视频,百度指数移动版app,网络推广外包加手机蛙软件,wordpress手机适应一#xff0c;情景描述
大家在写论文或者实验报告的时候#xff0c;经常会放多张图片或数据图像在一起形成对比。比如#xff0c;我现在有一张经过椒盐噪声处理的图像#xff0c;现在进行三种滤波#xff0c;分别是均值#xff0c;高斯#xff0c;中值滤波#xff0c;…一情景描述
大家在写论文或者实验报告的时候经常会放多张图片或数据图像在一起形成对比。比如我现在有一张经过椒盐噪声处理的图像现在进行三种滤波分别是均值高斯中值滤波共计四张图像怎么才能将他们利用matplotlib库放置到一起呢跟着我一起来写代码吧 二实现原理
1.读取图像
用cv2.imread函数读取原始图像图像文件放置在了项目文件夹下图像需要时opencv支持的图像格式如jpgpng等等具体见链接《OpenCV支持的图片格式》_opencv保存windows可以打开的类型-CSDN博客
# encoding:utf-8
import cv2
import matplotlib.pyplot as plt
plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签
plt.rcParams[axes.unicode_minus] False # 用来正常显示负号img_1 cv2.imread(sp_noise.jpg)
img_2 cv2.imread(medianBlur.jpg)
img_3 cv2.imread(mean.jpg)
img_4 cv2.imread(Gaussian.jpg)
2.将BGR转化为RGB
将图像色彩显示转化为RGB通道否则后续利用matplotlib显示图像的时候会发生色彩通道不兼容导致色彩出现偏差。具体原因见我写的博客【Bug】当用opencv库的imread函数读取图像用matplotlib库的plt.imshow()函数显示图像时图像色彩出现偏差问题的解决方法-CSDN博客
# 将BGR图像转换为RGB
img_1 cv2.cvtColor(img_1, cv2.COLOR_BGR2RGB)
img_2 cv2.cvtColor(img_2, cv2.COLOR_BGR2RGB)
img_3 cv2.cvtColor(img_3, cv2.COLOR_BGR2RGB)
img_4 cv2.cvtColor(img_4, cv2.COLOR_BGR2RGB)
3.显示图像
# 显示图形
titles [噪声图像, 中值滤波, 均值滤波 , 高斯滤波] # 设置每个图像的标题
images [img_1, img_2, img_3, img_4] #将图像存储到images列表里面将每个图像标题和图像分别储存到titles和images列表里方便后续取用图像标题与图像一一对应有多少图像存入列表多少。
for i in range(4):plt.subplot(2, 2, i 1)plt.imshow(images[i])plt.title(titles[i])plt.xticks(), plt.yticks()
plt.show()
for i in range(4):启动一个循环循环四次有多少个图像循环多少次每次循环代表对一个图像的处理。
plt.subplot(2, 2, i 1)在Matplotlib中创建一个2x2的子图网格i 的值在每次循环中分别为0123则i 1 表示子图的位置即1234下图是2x2的子图网格。 如果是plt.subplot(1, 4, i 1)则创建是1x4的子图网格即一行四列。如图 plt.imshow(images[i])然后使用 plt.imshow 显示列表中的图像当第一次循环时i0即取出images[0],即第一张图放到i11的位置。
plt.title(titles[i])设置当前子图的标题根据 titles 中的标题列表选择相应的标题。
plt.xticks([]), plt.yticks([])隐藏坐标轴这将使图像更干净不显示坐标刻如果去掉参数[],即显示坐标轴 三完整代码 # encoding:utf-8
import cv2
import matplotlib.pyplot as plt
plt.rcParams[font.sans-serif] [SimHei] # 用来正常显示中文标签
plt.rcParams[axes.unicode_minus] False # 用来正常显示负号img_1 cv2.imread(sp_noise.jpg)
img_2 cv2.imread(medianBlur.jpg)
img_3 cv2.imread(mean.jpg)
img_4 cv2.imread(Gaussian.jpg)
# 将BGR图像转换为RGB
img_1 cv2.cvtColor(img_1, cv2.COLOR_BGR2RGB)
img_2 cv2.cvtColor(img_2, cv2.COLOR_BGR2RGB)
img_3 cv2.cvtColor(img_3, cv2.COLOR_BGR2RGB)
img_4 cv2.cvtColor(img_4, cv2.COLOR_BGR2RGB)
# 显示图形
titles [噪声图像, 中值滤波, 均值滤波 , 高斯滤波]
images [img_1, img_2, img_3, img_4]
for i in range(4):plt.subplot(2, 2, i 1)plt.imshow(images[i])plt.title(titles[i])plt.xticks([]), plt.yticks([])
plt.show()实现效果 今日一笑 《天津中德应用技术大学助学金之原来我才是贫困生》