首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将matplotlib图保存为灰度

将matplotlib图保存为灰度
EN

Stack Overflow用户
提问于 2011-05-16 23:15:56
回答 5查看 23.4K关注 0票数 22

我有一些需要以灰度保存的彩色图。有没有一种简单的方法可以在不改变绘图格式的情况下做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-29 17:25:10

实际上,这是以前问过的。这是一个很好的答案,在google上排名第二(截至今天):

Display image as grayscale using matplotlib

其解决方案与Suki的非常相似。

哦,好吧,我很无聊,所以我在这里也发布了一个完整的代码:

代码语言:javascript
复制
import numpy as np
import pylab as p
xv=np.ones(4)*.5
yv=np.arange(0,4,1)
xv1=np.ones(4)*-.5
yv1=np.arange(0,4,1)

#red vertical line on the right
yv2=np.arange(0,1.5,0.1)
xv2=np.ones_like(yv2)*.7

#red vertical line on the left
yv3=np.arange(0,2,0.01)
xv3=np.ones_like(yv3)*-0.7

###
xc=np.arange(-1.4,2,0.05)
yc=np.ones_like(xc)*1

fig = p.figure()
ax1 = fig.add_subplot(111)
#adjustprops = dict(left=0.12, bottom=0.2, right=0.965, top=0.96, wspace=0.13, hspace=0.37)
#fig.subplots_adjust(**adjustprops)
ax1.plot(xv,yv, color='blue', lw=1, linestyle='dashed')
ax1.plot(xv1,yv1, 'green', linestyle='dashed')
ax1.plot(np.r_[-1:1:0.2],np.r_[-1:1:0.2],'red')
ax1.plot(xc,yc, 'k.', markersize=3)

p.savefig('colored_image.png')

import matplotlib.image as mpimg
import matplotlib.cm as cm
import Image

figprops = dict(figsize=(10,10), dpi=100)
fig1 = p.figure(**figprops)
#fig1 = p.figure()
#ax1 = fig.add_subplot(111)
adjustprops = dict()
image=Image.open('colored_image.png').convert("L")
arr=np.asarray(image)
p.figimage(arr,cmap=cm.Greys_r)
p.savefig('grayed.png')
p.savefig('grayed.pdf',papertype='a4',orientation='portrait')

这将产生一个彩色图形,然后读取它,将其转换为灰度,并将保存为png和pdf。

票数 5
EN

Stack Overflow用户

发布于 2011-05-24 01:45:17

目前直接在matplotlib上做这件事很笨拙,但“将来”他们计划在图上支持set_gray(True)调用(参见邮件列表线程here)。

您最好的选择是将其保存为颜色并进行转换,或者在python中使用PIL:

代码语言:javascript
复制
import Image
Image.open('color.png').convert('L').save('bw.png')

或者从命令行使用imagemagick:

代码语言:javascript
复制
convert -type Grayscale color.png bw.png
票数 9
EN

Stack Overflow用户

发布于 2018-04-12 07:22:15

有一个简单的解决方案:

代码语言:javascript
复制
plt.imsave(filename, image, cmap='gray')
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6019473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档