【问题标题】:How to convert grayscale values in matrix to an image in Python?如何将矩阵中的灰度值转换为 Python 中的图像?
【发布时间】:2014-09-21 01:26:12
【问题描述】:

我在形状为 24x24 的矩阵中有一组灰度值:

masked=[[149 172 160 166 170 179 180 176 202 190 221 232 125 112 153 132 200 185
  191 231 227 101  85 127] ...

我尝试将此矩阵文件保存为灰度图像,如下所示:

im = Image.fromarray(masked_crop)
im.save('crop.png')

但我的图像中没有包含这些值,而是获得了尺寸为 24x24 的完整深色图像。 我哪里错了?

【问题讨论】:

  • 你能把你的矩阵放在网上某个地方(例如在一个要点中),这样我们就可以轻松地自己尝试一下吗?
  • 我尝试将输出写入文件,但写入的文件包含非 unicode 文本。

标签: python image grayscale


【解决方案1】:

您可以使用 matplotlib 显示和保存图像

import numpy
from matplotlib import pyplot as plt
x = numpy.random.rand(10, 10)*255
plt.imshow(x, cmap='gray', interpolation='nearest', vmin=0, vmax=255)
plt.savefig('text.png')
plt.show()

【讨论】:

  • 再次感谢。有效。使用插值的目的是什么?
  • 实际上,使用 interpolation='nearest' 您可以禁用默认插值。也许只是看看没有插值选项的图片;)
【解决方案2】:

不幸的是fromarray 没有文档字符串,但是如果您的“矩阵”是numpy 数组(或以其他方式实现数组接口)并且您另外将模式设置为“L”(作为fromarray 的第二个参数)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    相关资源
    最近更新 更多