2015-02-03 5 views
-1

fft2 명령을 사용하여 GNU Octave에서 일부 이미지 처리를 시도하고 있지만 역변환 문제가 있습니다.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로 가져옵니다. 이는 1 차원이 너무 많습니다.

그래서 그것을 해결하기 위해, 당신의 변환을위한 채널을 선택하고 그것에게 당신의 규모 이야기 (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

관련 문제