Я пытаюсь взять fft изображения в python, изменить преобразованное изображение и взять обратный fft. В частности, у меня есть изображение сетки, которую я хотел бы преобразовать, а затем вычеркнуть все, кроме центральной, узкой вертикальной щели преобразования, а затем взять обратный fft.Код Python для базового fft изображения сетки
Код я работаю сейчас, отсутствие изменений для преобразования плоскости:
import os
os.chdir('/Users/terra/Desktop')
import Image, numpy
i = Image.open('grid.png')
i = i.convert('L') #convert to grayscale
a = numpy.asarray(i) # a is readonly
b = abs(numpy.fft.rfft2(a))
j = Image.fromarray(b)
j.save('grid2.png')
В настоящее время, я получаю сообщение об ошибке:
Traceback (самый последний вызов в прошлом) : Файл «/Users/terra/Documents/pic2.py», строка 11, в j.save ('grid2.png') Файл «/Library/Frameworks/Python.framework/Versions/2.7/lib/python2 .7/site-packages/PIL/Image.py ", строка 1439, в сохранении save_handler (self, fp, filename) Файл"/Libr ary/Frameworks/Python.framework/Версии/2.7/lib/python2.7/site-packages/PIL/PngImagePlugin.py ", строка 506, в _save повысить IOError," невозможно записать режим% s как PNG "% mode IOError: не может писать режим F как PNG
Я очень новичок в программировании и преобразованиях Фурье, поэтому большинство связанных потоков, которые я нашел онлайн, над моей головой. Очень ценная помощь. Благодаря!
В Python 2.5 Я не получаю такого сообщения об ошибке для этого кода. – Bemmu
Стилистичный, но я рекомендую не использовать имена переменных 'i' и' j' для чего угодно, кроме целочисленных индексирующих переменных, например, для прохождения диапазона или цикла. – Patashu
Не могли бы вы скопировать и вставить свой код в консоль, а затем отредактировать свой вопрос, чтобы включить всю полученную трассировку? (Единственный способ, с помощью которого я могу думать о том, чтобы вызвать это сообщение об ошибке, было бы, если бы код был действительно «a = numpy.asarray (« i ») или что-то еще, но я не уверен, какая строка является четвертой.) – DSM