栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

matplotlib的imshow函数显示灰度图像要设置vmin和vmax2个参数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

matplotlib的imshow函数显示灰度图像要设置vmin和vmax2个参数

matplotlib的imshow函数非常复杂,支持很多的colormap,变换等等。使用该函数需要注意参数的设置,尤其是灰度图像。
imshow有2个参数vmin和vmax。在显示灰度图像时,要设定上vmin=0以及vmax=255。否则imshow函数会自动进行数值调整。
输入的数值分别是:X1 = [[1,2,3],[4,5,6]]和X2 = [[111,112,113],[114,115,116]]。如果不设置vmin和vmax则得到的图像是差不多的。

#coding:utf8

import matplotlib.pyplot as plt

X1 = [[1,2,3],[4,5,6]]
X2 = [[111,112,113],[114,115,116]]
fig = plt.figure()
ax = fig.add_subplot(121) 
im = ax.imshow(X1,cmap=plt.cm.gray) 
plt.colorbar(im, cax=None, ax=None,shrink=0.5)

ax = fig.add_subplot(122)
im = ax.imshow(X2, cmap=plt.cm.gray)
plt.colorbar(im, cax=None, ax=None,shrink=0.5)

plt.show()

假如设置vmin=0,vmax=255,情况就会不一样:

第3张和第4张图的灰度值设置是[0,255],此时X1和X2因为数值接近,显示为接近纯色而不是灰度差别很大的色块。因此在使用matplotlib的imshow函数时候要注意此种情况,否则很可能得不到想要的结果,比如进行灰度缩放的时候很可能没有显著的变化。

# coding:utf8

import matplotlib.pyplot as plt

X1 = [[1, 2, 3], [4, 5, 6]]
X2 = [[111, 112, 113], [114, 115, 116]]
fig = plt.figure()
ax = fig.add_subplot(221)
im = ax.imshow(X1, cmap=plt.cm.gray)
plt.colorbar(im, cax=None, ax=None, shrink=0.5)

ax = fig.add_subplot(222)
im = ax.imshow(X2, cmap=plt.cm.gray)
plt.colorbar(im, cax=None, ax=None, shrink=0.5)

ax = fig.add_subplot(223)
im = ax.imshow(X1, cmap=plt.cm.gray, vmin=0, vmax=255)
plt.colorbar(im, cax=None, ax=None, shrink=0.5)

ax = fig.add_subplot(224)
im = ax.imshow(X2, cmap=plt.cm.gray, vmin=0, vmax=255)
plt.colorbar(im, cax=None, ax=None, shrink=0.5)

plt.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958326.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号