Matplotlib-ImageTutorial

Import:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

函数方法:

1.从路径读取图片

img = mpimg.imread('/Users/xxx/Desktop/xxx.png')

2.显示图片

plt.imshow(img)

运行结果:
可选参数 cmap : 色彩图谱,一种颜色到另一种颜色的渐变

必须是单通道图 : 一个像素点一个值,非RGB三值

#RGB图转单通道
lum_imgR = img[ :, :, 0]  #R通道
lum_imgG = img[ :, :, 1]  #G通道
lum_imgB = img[ :, :, 2]  #B通道

hot: 黑-红-黄-白
nipy_spectral: 色温图
默认viridis: 紫-绿-黄
想改变已存在的图片的cmap,需要使用set_camp()函数:

imgplot = plt.imshow(lum_img)
imgplot.set_cmap('nipy_spectral')

运行结果:
显示 cmap 的颜色条:
imgplot = plt.imshow(lum_img)
plt.colorbar()
可选参数clim:颜色渲染范围
plt.imshow(lum_img),clim=(0.0, 0.7),cmap='nipy_spectral')
plt.colorbar()
可选参数interpolation : 显示模式(个人理解)
from PIL import Image
img = Image.open('/Users/xxx/Desktop/xxx.png')
img.thumbnail((64, 64), Image.ANTIALIAS) 
imgplot = plt.imshow(img)

通过 PIL来缩小图片使之出现像素块
运行结果:

imgplot = plt.imshow(img, interpolation="nearest")

nearest运行结果:

imgplot = plt.imshow(img, interpolation="bicubic")

bicubic运行结果:

3.色度分布统计

plt.hist(lum_img.ravel(), bins='auto', range=(0.0, 1.0))
  • ravel函数是 numpy 的函数: 将多维数组中的元素变成一个一维数组
In [1]:  n = np.array([[1,1,2],[3,4,5]])  
         n.ravel()

Out[1]:  array([1, 1, 2, 3, 4, 5])

hist()函数:

  • 第一个参数: 统计的像素的集合,是一个一维数组

  • bins: 将值范围分成bins个数,色度是连续量,bins就是显示的数字量,浮点型的会统计进最近的 数字量
    e.g: 0.0 - 1.0 , bins 取 5, 则分成[0.0-0.2], [0.2-0.4], [0.4-0.6], [0.6-0.8], [0.8-1.0],每个区间一个柱子
    当安装了numpy时, 可填写 'auto', 自动选取合适的值

  • range : 即范围, 统计的值的范围


欢迎关注我的博客Vagitus – Pythonista

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 来源:NumPy Tutorial - TutorialsPoint 译者:飞龙 协议:CC BY-NC-SA 4...
    布客飞龙阅读 33,288评论 6 98
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,473评论 19 139
  • 本文转自 python数字图像处理 基于python脚本语言开发的数字图片处理包,比如PIL,Pillow, op...
    jiandanjinxin阅读 148,165评论 8 89
  • NumPy是Python中关于科学计算的一个类库,在这里简单介绍一下。 来源:https://docs.scipy...
    灰太狼_black阅读 4,982评论 0 5
  • 雨润满山城 望望一年晴 绝胜草色香 如酥滴掩口
    曹广潼树根草阅读 1,371评论 0 4