Image python中的灰度-从深灰色到浅灰色再到深灰色的不直接颜色
我正在绘制此图像的灰度版本: 资料来源: 我使用了以下代码:Image python中的灰度-从深灰色到浅灰色再到深灰色的不直接颜色,image,python-2.7,matplotlib,python-imaging-library,grayscale,Image,Python 2.7,Matplotlib,Python Imaging Library,Grayscale,我正在绘制此图像的灰度版本: 资料来源: 我使用了以下代码: import numpy as np import matplotlib.pyplot as plt import matplotlib.cm as cm from PIL import Image file_name = 'griddata_demo.png' def func_grey(fname): image = Image.open(fname).convert("L") arr = np.asarray
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from PIL import Image
file_name = 'griddata_demo.png'
def func_grey(fname):
image = Image.open(fname).convert("L")
arr = np.asarray(image)
plt.imshow(arr, cmap = cm.Greys_r)
plt.show()
func_grey(file_name)
我正在使用的安装程序是Python2.7和Pandas,我已经安装了Pillow with easy install
有关图像和要求的背景信息:
是否可以更改颜色贴图,使-0.36为浅灰色,0.48为深灰色?我的意思是,是否可以从亮到暗显示到颜色栏?我想这个问题可能是关于如何在matplotlib中使用灰度颜色贴图。如果是这样的话,那就直截了当了。下面是一个使用不同颜色贴图的示例(基于op图像的代码):
如果你真的想用PIL转换成灰度(这是一项不太好的任务,但有时是必要的任务),最好从一个亮度单调的彩色贴图开始,比如上面的
hot
,而不是rainbow
。另外,在我的评论中,我建议使用cubehelix
,但这不是matplotlib的标准配置,请参见。有关可用matplotlib颜色贴图的图像,请参阅。此解决方案适合我,而且简单得多
from PIL import Image
im = Image.open("image.png")
im.convert('L').show()
im.convert('L').save("image.png")
请注意,如果要混合文件类型,可以使用(.png到.jpg)这是原始图像的颜色贴图的一个众所周知的问题:即它没有单调的亮度(在你的情况下,
0
处的绿色比极端处的红色或蓝色亮。你可以看到它,所以不要责怪你的转换器)。因此,您不需要使用亮度进行转换,而需要反转原始的彩色贴图。或者,如果您可以从头开始制作彩色图像,而不需要制作现有图像,请选择其他彩色贴图,例如hot
,或cubehelix等。@tom10:谢谢。我正在查看您的第一封回复。我还会阅读您的第二封信函主要问题是,你最初的彩色地图是什么?因为上面只是一个演示,彩色地图的细节非常重要(有些是琐碎的,有些是困难的),从一开始就知道很重要。@tom10:(如果您认为在聊天中进一步讨论这个问题是合适的,请让我知道-然后我会在这里发布结果,以便回答原始帖子。)因此,我用“print cm.get_cmap()”检查了我的颜色映射,我得到了“”。似乎我需要使用序列2颜色贴图列表中的颜色贴图灰色。我如何更改类别并从新类别列表中选择一个贴图?聊天对我来说很好,尽管我不知道如何到达那里,所以如果你这样做,请启动。在讨论此问题时,请务必明确,你的想法是什么原始彩色地图,与您的目的地。无论是什么,请更清楚地了解您需要转换的原始图像:1)您是否可以控制它(例如,您可以选择它的彩色地图)?你知道什么颜色对应什么值吗?你是如何知道的?等等。是的,这回答了问题。我将更新原始问题以反映更合适的措辞。基本上,正如你所说的那样,不需要生成图像并保存它,然后导入它以更改颜色映射。这一切都应该从直接原始数据。感谢您的耐心和回复。这是我在网上搜索中很难找到的答案。只是关于您的第三个子批次的后续信息-您使用了“hot”作为颜色贴图。我假设,默认情况下,它选择了红色-是否可以将其设置为其他颜色?我添加了一个链接,您可以在其中查看所有包含的颜色贴图。如果颜色贴图很简单(如hot is),您也可以非常轻松地从头开始构建自己的颜色贴图,如果您想这样做,请搜索linearsegmentedcolormap,但现在可能需要搜索包含的颜色。(但对于您的特定问题,请注意,您不能将“hot”更改为使用其他颜色。)再次感谢。全文中的所有问题都已回答。
from PIL import Image
im = Image.open("image.png")
im.convert('L').show()
im.convert('L').save("image.png")