matplotlib中的低对比度图像(对比度拉伸)问题

时间:2013-09-16 20:21:44

标签: python matplotlib pillow

当读取低对比度图像时,它会自动采用以下示例:

In [1]: from PIL import Image
In [2]: import numpy as np
In [3]: import matplotlib.pyplot as plt
In [4]: img = Image.open('images/map.jpg')
In [5]: arr = np.asarray(img)
In [6]: plt.gray()
In [7]: plt.imshow(arr)
Out[7]: <matplotlib.image.AxesImage at 0x7f9c7e88f490>
In [8]: plt.show()

输入

input large

绘图(matplotlib不会自动更改。)

plot large

因为此输入与绘图不同,因此修改任何内容。

我需要低对比度图像来实现对比拉伸的算法

阅读书籍amazon数字图像处理(Rafael C. Gonzalez,Richard E. Woods)

PS:matplotlib 转换自动。我不需要。

1 个答案:

答案 0 :(得分:8)

如果您不想自动缩放色彩映射表,可以使用vminvmax来设置您喜欢的范围,如下所示:

plt.imshow(arr, vmin=0, vmax=255)

当显示一个numpy数组时,matplotlib只能自动知道实际输入数据的范围(不是它取自的范围),所以它需要完整的输入范围才能将其映射到完整的输出范围。但是,如果您知道不同范围的输入数据,则可以使用vminvmax来指定它。