我正在尝试将一个尺寸为128x128像素的numpy数组保存为灰度图像。

我只是简单地认为pyplot.imsave函数可以完成这项工作,但事实并非如此,它以某种方式将我的数组转换为RGB图像。

我试图在转换过程中将颜色映射强制为灰色,但即使保存的图像以灰度显示,它仍具有128x128x4的维度。

下面是我编写的一个代码示例,用于显示行为:import numpy as np

import matplotlib.pyplot as plt

import matplotlib.image as mplimg

from matplotlib import cm

x_tot = 10e-3

nx = 128

x = np.arange(-x_tot/2, x_tot/2, x_tot/nx)

[X, Y] = np.meshgrid(x,x)

R = np.sqrt(X**2 + Y**2)

diam = 5e-3

I = np.exp(-2*(2*R/diam)**4)

plt.figure()

plt.imshow(I, extent = [-x_tot/2, x_tot/2, -x_tot/2, x_tot/2])

print I.shape

plt.imsave('image.png', I)

I2 = plt.imread('image.png')

print I2.shape

mplimg.imsave('image2.png',np.uint8(I), cmap = cm.gray)

testImg = plt.imread('image2.png')

print testImg.shape

在这两种情况下,“打印”功能的结果都是(128128,4)。

有人能解释为什么imsave函数会在我的输入数组是亮度类型的情况下创建这些维度吗?

当然,有没有办法把数组保存成标准的灰度格式?

谢谢!

python保存灰度图像_如何使用matplotlib/numpy将数组保存为灰度图像?相关推荐

  1. python第三方库numpy-Python三方库:Numpy(数组处理)

    Numpy是Python中用于处理数组的一个非常强大的库,同时也是Pandas等数据处理的库的核心,如果你有大量处理数组类型数据的操作,比如操作CSV文件数据或涉及数组的科学计算等,那么Numpy是一 ...

  2. java二维对象数组存入文件_关于Java:将2D数组保存到磁盘文件

    我目前正在开发一个基本的国际象棋程序,该程序允许用户保存当前游戏并稍后再返回并从上次停止的地方接机. 唯一的问题是我不知道如何将2d数组保存到磁盘文件. 我感到更加困惑的是,该代码集需要单独写入每个值 ...

  3. python多边形图案_如何用matplotlib中的自定义图案填充多边形?

    您可以子类matplotlib.hatch.Shapes,并根据在unit square[[-0.5,0.5]x[-0.5,0.5]]内绘制的任何引用路径定义自定义图案填充.在 暂定:import n ...

  4. python画剖面图_如何创建Matplotlib图形与图像和剖面图相匹配?

    我无法使用subplot和gridspec生成布局,同时仍然保留(1)轴的比率和(2)对轴施加的限制.另一种解决方案是手动将轴放置在图形中,并相应地控制图形的大小(正如您在OP中所提到的).尽管这比使 ...

  5. python turtle渐变色_如何在matplotlib中绘制渐变色线?

    我最近用类似的请求(creating over 20 unique legend colors using matplotlib)回答了一个问题.在这里,我展示了你可以将绘制线条所需的颜色循环映射到颜 ...

  6. python 标签 轴_如何在matplotlib中将轴标签对齐到右侧或顶部 - python

    默认情况下,matplotlib将轴标签绘制在轴的中心.我想以水平轴和垂直轴都与轴的末端对齐的方式移动标签.例如,对于水平轴,我希望看到: +--------------------+ | | | | ...

  7. python阈值分割_根据阈值分割numpy数组的更快方法

    X[~Z]比X[Z==0]快:In [13]: import numpy as np In [14]: X = np.random.random_integers(0, 1000, size=1000 ...

  8. python图案填充_向imshow Matplotlib添加图案填充

    基本上,我要做的是在this问题的答案中解释的想法.在 我用imshow绘制一幅100×100的图像,在某些情况下,我想绘制图案填充.在 下面是我的图像示例: 这表示100个标量场样本的平均值.我还有 ...

  9. python网格测试_测试d的numpy网格大小调整

    我有一个形状为(10049280)的测试数据集x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5 y_min, y_max = X[:, 1]. ...

最新文章

  1. 法大大刘谦:法务智能化创新实践与行业趋势
  2. 思科发力虚拟化和云服务 推出多款新品
  3. python职能-最受欢迎的10家互联网公司揭秘Python薪资!
  4. UA MATH566 统计理论7 还有一个例子:推导卡方检验
  5. Centos/Red Hat6.8 安装、配置、启动Gitlab (外网环境)
  6. 防火墙上开放Oracle服务端口1521的方法
  7. 网页文字无法免费复制的几种解决方法
  8. Ubuntu下Chrome浏览器不能以根用户身份运行的解决方法
  9. Redis之Redis事务
  10. 基台和种植体如何连接_种植牙所用的材料是什么?安不安全?种植牙手术后该如何护理?...
  11. 管理距离 动态协议端口号 协议号
  12. 王者荣耀微信哪个服务器怎么选,王者荣耀:国服战力对比!手Q和微信哪个大区的战力更胜一筹?...
  13. Win7与VirtualBox ubuntu共享文件夹
  14. kkfile配置https预览文件
  15. python哪家培训
  16. 一切皆socket!网络编程:三次握手 四次握手 与socket函数的关系
  17. 如何撰写PRD(一)
  18. 图解Esp32/ESP8266进行组网开发所需了解的那些小概念
  19. 初夏雨夜(夏夜初雨)
  20. javascript【写法规范】

热门文章

  1. 通信 ≠ 通讯,串口通信概念,同步与异步的区别
  2. 北方网站南方服务器,北方地区与南方地区
  3. Typora + Picgo + 阿里云oss实现图片上传
  4. TensorFlow之Slim
  5. 什么是网关,网关是什么意思?,怎么理解网关?
  6. Linux文件权限操作
  7. 虚拟串口服务器 源代码,进行ARM开发调试用的开源虚拟串口软件(有源代码)
  8. 运营商强制用户升级光纤:非免费 否则停网
  9. lolcat彩虹色输出文本
  10. (POJ 1183)反正切函数的应用