Создание изображения в градациях серого с помощью Matrix in python - PullRequest
0 голосов
/ 26 ноября 2018

Я Мариус, студент первого курса по математике.

Мы получили командное задание, в котором нам нужно реализовать преобразование Фурье, и мы решили попытаться закодировать преобразование изображения визображение JPEG.

, чтобы упростить задачу для себя, мы решили сделать это только для изображений с серым цветом.Пока это мой код:

from PIL import Image
import numpy as np
import sympy as sp

#
#ALLEMAAL INFORMATIE GEEN BEREKENINGEN
img = Image.open('mario.png')  
img = img.convert('L') # convert to monochrome picture
img.show() #opens the picture
pixels = list(img.getdata())
print(pixels) #to see if we got the pixel numeric values correct
grootte = list(img.size)
print(len(pixels)) #to check if the amount of pixels is correct.
kolommen, rijen = img.size
print("het aantal kolommen is",kolommen,"het aantal rijen is",rijen)
#tot hier allemaal informatie

pixelMatrix = []
while pixels != []:
    pixelMatrix.append(pixels[:kolommen])
    pixels = pixels[kolommen:]
print(pixelMatrix)
pixelMatrix = np.array(pixelMatrix)
print(pixelMatrix.shape)

Теперь проблема формируется в последних 3 строках.Я хочу попытаться преобразовать матрицу значений обратно в изображение с матрицей pixelMatrix в качестве значения.Я пробовал много вещей, но это, кажется, самый очевидный способ:

im2 = Image.new('L',(kolommen,rijen))
im2.putdata(pixels)
im2.show()

Когда я использую это, он просто дает мне черное изображение правильных размеров.Любые идеи о том, как вернуть исходную картинку, начиная со значений в моей матрице pixelMatrix?

Post Scriptum: Нам все еще нужно реализовать само преобразование, но это будет бесполезно, если мы не уверены, что сможем преобразоватьматрица обратно в оттенках серого.

...