2014-11-02 9 views
0

저는 서브 이미지에서 푸리에 변환을 수행하기 위해 노력하고 있습니다. 나는 이미지를 압축하기 위해 블록 변환 코딩으로 바쁘다.8x8 서브 이미지에 대해 이산 푸리에 변환을 계산하는 방법

여기 내 코드는 지금까지의 :

A=imread('bone.tif'); 
A=double(A); 
[M N]=size(A); 
sub=8; 

temp=double(zeros(size(A))); 
for y=1:sub:M-sub+1 
    for x=1:sub:N-sub+1 
     croppedImage = A((y:y+sub-1),(x:x+sub-1)); %get 8 by 8 image 
     %what must I do here, discrete fourier transform      
     temp((y:y+sub-1),(x:x+sub-1))=t;   %holder of results 
    end 
end 

figure(2), 
subplot(1,3,1),subimage(uint8(A)); title('orginal image'); 
subplot(1,3,2),subimage(temp); title('block transformed image'); 

DFT에 대한 조언이나 코드를 제공하십시오의 도막을 수행하는 코드는 코드

답변

0

에 표시된대로? 그것이 없으면 우리는 왜 당신이 그것을 작동시키지 못했는지 말할 수 없습니다. Matlab에는 좋은 문서가 있습니다. 두 차원의 문제로 확장 한 것으로 이해하면

http://www.mathworks.de/help/matlab/math/discrete-fourier-transform-dft.html http://www.mathworks.de/help/signal/ug/discrete-fourier-transform.html

: 먼저 도막 실제 무엇을하고 있는지 일반 아이디어를 얻기 위해 몇 가지 예를 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 나는 왜 그것을 빠뜨린 dft 코드에 성공하지 못했습니다. 이미 링크 된 페이지를 살펴 봤지만 matlab에서 제공하는 fft2 함수와 함께 8 by 8을 사용하는 개념을 이해할 수는 없습니다. – cfl

+0

그래서 croppedImage_spectral = fft2 (croppedImage); 너를 위해 일하지 않니? 일반적으로 2 차원 dft는 열을 따라 그리고 이미지의 행을 따라 1 차원 dft를 수행합니다. 이미지 처리 책에서 이론에 대해 읽을 수 있습니다. matlab에 대한 좋은 책도 있습니다. –

+0

고마워요. 처음에 시도 할 때 임의의 오류가 발생하여 작동하지 않는다고 생각했습니다. 그러나 부분 이미지 (임시)를 표시 할 때 오류가 발생한다는 것을 알았습니다. 하지만 작품은 하위 이미지 (실제 (임시))를 사용합니다. 도움 주셔서 감사합니다 Tanja – cfl