具有对数范数的 Matplotlib imsave 图像
Matplotlib imsave image with log norm
我如何使用 Matplotlib 使用以下颜色映射 选项保存图像?
当前语法不允许我这样做?
plt.imsave('C:/Users/Desktop/Img/image'+'_'+ str(i)+'.png', data)
我想在上面添加这个:
norm=matplotlib.colors.LogNorm()
cmap=my_cmap
理想情况下我想要:
plt.imsave('C:/Users/Desktop/Img/image'+'_'+ str(i)+'.png', data, norm=matplotlib.colors.LogNorm(), cmap=my_cmap)
但这不可能。
的文档
从本质上讲,使用 LogNorm 与取数据的对数相同。
import matplotlib.pyplot as plt
import numpy as np
data = plt.imread("house.png").mean(axis=2)
logdata = np.log(data)
plt.imsave("logimage.png", logdata, cmap="viridis")
如果某些值为零,则对数图的外观可能并不明显。您可以事先用 nan 值替换零(这是 LogNorm 会做的)
data[data == 0.] = np.nan
logdata = np.log(data)
或者您可以向数据中添加少量数据,这样它们就不再为零
logdata = np.log(data+0.02)
我如何使用 Matplotlib 使用以下颜色映射 选项保存图像?
当前语法不允许我这样做?
plt.imsave('C:/Users/Desktop/Img/image'+'_'+ str(i)+'.png', data)
我想在上面添加这个:
norm=matplotlib.colors.LogNorm()
cmap=my_cmap
理想情况下我想要:
plt.imsave('C:/Users/Desktop/Img/image'+'_'+ str(i)+'.png', data, norm=matplotlib.colors.LogNorm(), cmap=my_cmap)
但这不可能。
的文档从本质上讲,使用 LogNorm 与取数据的对数相同。
import matplotlib.pyplot as plt
import numpy as np
data = plt.imread("house.png").mean(axis=2)
logdata = np.log(data)
plt.imsave("logimage.png", logdata, cmap="viridis")
如果某些值为零,则对数图的外观可能并不明显。您可以事先用 nan 值替换零(这是 LogNorm 会做的)
data[data == 0.] = np.nan
logdata = np.log(data)
或者您可以向数据中添加少量数据,这样它们就不再为零
logdata = np.log(data+0.02)