更多关于matplotlib的学习请关注博客文章
图片教程
利用matplotlib处理图片
导入
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
将图像数据导入到NumPy数组
这是我们要处理的图片:
让我们打开并输出它:
img = mpimg.imread('C:\\Users\\wangz\\Desktop\\Pic.png') #图片路径
print(img)
将NumPy数组绘制成图像
imshow()
函数将numpy数组中的数据渲染成图像。
imgplot = plt.imshow(img)
伪彩色应用于图像
伪彩色是增强对比度和更轻松地可视化数据的有用工具。
伪彩色仅与单通道,灰度,发光度图像有关。我们目前有一个RGB图像。由于R,G和B都是相似的(请参见上方或数据中的内容),我们可以选择一个数据通道:
lum_img = img[:,:,0] #数组切片,更多相关切片请看个人博客关于NumPy学习
plt.imshow(lum_img)
同样,对于亮度图像,将应用默认的颜色图(又名查找表:LUT)。默认名称为viridis,也有其他可供选择:
plt.imshow(lum_img,cmap="hot") #暖色调显示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K5BxOluw-1606307269445)(C:\Users\wangz\AppData\Roaming\Typora\typora-user-images\image-20201120212946492.png)]
您还可以使用
set_cmap()
方法更改现有打印对象上的颜色图
imgplot = plt.imshow(lum_img)
imgplot.set_cmap('nipy_spectral')
可以通过添加颜色条来了解颜色代表什么价值,可通过matplotlib.pyplot.colorbar()函数实现
imgplot = plt.imshow(lum_img)
plt.colorbar()
如果你想增强图像的对比度,或扩大特定区域的对比度,同时牺牲颜色变化不大或无关紧要的细节。直方图是个好工具。要创建图像数据的直方图,我们使用
hist()
函数。
plt.hist(lum_img.ravel(),bins=256,range=(0.0,1.0),fc='k',ec='k')
在获取图像的主要的区域[0.0,0.7]后 (如直方图所示),
我们可以通过传递clim参数或者调用**set_clim()**方法修改图像对比度
imgplot = plt.imshow(lum_img,clim=(0.0,0.7))
如果你发现文章中出现的错误或者任何疑问欢迎在下方评论区评论
更多文章欢迎到个人博客查看点此跳转