0

I am trying to convert an image into an array where, for example, if I have an image of 20x20 pixels I would like to have an array of 20 rows and 20 columns. I would like to have each unique colour to be represented by a number. So basically this code but with unique numbers ( could be an r, g, or b value ) instead of zeros.

import numpy as np
from PIL import Image

img = np.asarray(Image.open('test.png'))

Y = np.array(np.zeros((20,20)))

print(Y)

I know this is incorrect, but it gives the exact visual layout I want to achieve, except that I would like to put a comma instead of full stop between each item.

Then this code gives me the correct values of the image but I cannot figure out how to get it into that format like above:

from PIL import Image
from numpy import asarray


img = Image.open('test.png')
arraydata = asarray(img)


print(arraydata)  

Any pointers are much appreciated.

GDonkey
  • 21
  • 3
  • I would like to have each unique colour to be represented by a number. ---> I believe you should look about Palette see https://stackoverflow.com/questions/3114925/pil-convert-rgb-image-to-a-specific-8-bit-palette – pippo1980 Oct 15 '21 at 07:05

0 Answers0