擅长:python、mysql、java
<p>根据您对<a href="https://stackoverflow.com/users/214686/stefan-van-der-walt">Stefan van der Walt</a>的<a href="https://stackoverflow.com/a/27262405/4177384">answer</a>的评论,我得出结论,您不想保存matplotlib图形,而是直接保存图像。
正如Stefan指出的,在使用colormap之前,您需要缩放这些值。Matplotlib为此提供了<code>Normalize</code>类:</p>
<pre><code>import matplotlib.pyplot as plt
import matplotlib.colors
from skimage import data
from skimage.color import rgb2hed
ihc_rgb = data.immunohistochemistry()
ihc_hed = rgb2hed(ihc_rgb)
fig, axes = plt.subplots(1, 3, figsize=(8, 3))
ax0, ax1, ax2 = axes.ravel()
ax0.imshow(ihc_hed[:, :, 0], cmap=plt.cm.gray)
ax0.set_title("plugin")
ax1.imshow(plt.cm.gray(ihc_hed[:, :, 0]))
ax1.set_title("direct")
norm = matplotlib.colors.Normalize()
gray_image = plt.cm.gray(norm(ihc_hed[:,:,0]))
ax2.imshow(gray_image)
ax2.set_title("direct with norm")
for a in axes:
a.xaxis.set_visible(False)
a.yaxis.set_visible(False)
plt.gcf().tight_layout()
plt.show()
</code></pre>
<p><img src="https://i.stack.imgur.com/z0wKs.png" alt="enter image description here"/></p>