2015-02-03 1 views
-1

Я пытаюсь выполнить некоторую обработку изображений в GNU Octave с помощью команды fft2, но у меня проблема с обратным преобразованием.Как я могу заставить команду GNU Octave ifft2 работать?

Я могу рассчитать преобразование без проблем, делать то, что я хочу с ним, но когда я вернусь в космическую область и попытаюсь построить изображение, все, что я получаю, - это все черное изображение.

Я даже попытался сделать только обратное и обратное преобразование и не более того, все та же проблема.

Что я могу сделать?

Изображение я использую, чтобы проверить, кстати, является то, что один:

http://bootstrapbay.com/blog/wp-content/uploads/2014/05/yellow-taxi_vvvjao.png

Код:

I = imread ('image.jpg');

imshow (I),% Производит изображения правильно

I2 = fft2 (I);

I2 = ifft2 (I2);

imshow (I2)% Производит черное изображение

+0

извините за ссылку, я не могу опубликовать изображения (пока) – ebernardes

+0

Можете ли вы показать свой код? – runDOSrun

+0

* Соответствующий * код, в котором вы делаете все, что вы описали (не комментируйте, не редактируйте сообщение). – runDOSrun

ответ

0

Если вы попытаетесь на самом деле, используя, например, в jpg вы увидите, что это дает вам совсем другой результат по сравнению с вашим png. Ваша проблема заключается в том, что вы загружаете uint8 с помощью imread, но fft2 дает результат с двойной оценкой (вы можете проверить более подробную информацию о ответе this). Кроме того, изображения импортируются как RGB - это слишком одно измерение.

Так, чтобы исправить это, просто выбрать канал для ваших преобразований и сказать ему свой масштаб (Dmin, Dmax):

a = double(imread('image.png')); 
a = a(:,:,1); 
ffta = fft2(a); 
img = ifft2(ffta); 

dmin = min(min(abs(img))); 
dmax = max(max(abs(img))); 

imshow(img, [dmin dmax]) 
pause(5) 

приводит к восстановлению полутонового изображения:

enter image description here

Если у вас есть пакет изображений, вы также можете использовать такие функции, как im2double и т. Д. (См., Например, here).

+0

Человек, ты только что спас меня. Большое спасибо! – ebernardes