Я Мариус, студент первого курса по математике.
Мы получили командное задание, в котором нам нужно реализовать преобразование Фурье, и мы решили попытаться закодировать преобразование изображения визображение 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: Нам все еще нужно реализовать само преобразование, но это будет бесполезно, если мы не уверены, что сможем преобразоватьматрица обратно в оттенках серого.