Okay Lolz
Okay Lolz

Reputation: 423

How to convert grayscale values in matrix to an image in Python?

I have a set of grayscale values in matrix of shape 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] ...

And I try to save this matrix file to a grayscale image as follows:

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

But instead of having those values in my image, I get a complete dark image of size 24x24. Where am I going wrong?

Upvotes: 0

Views: 2970

Answers (2)

Alan
Alan

Reputation: 9620

Unfortunately fromarray has no docstring, but what you are trying should work if your "matrix" is a numpy array (or otherwise implements the array interface) and you additionally set the mode to 'L' (as the second argument to fromarray).

Upvotes: 0

zinjaai
zinjaai

Reputation: 2385

You can display and save an image with 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()

Upvotes: 2

Related Questions