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