0
我一直在努力让它对子图像进行傅里叶变换。我忙于块变换编码,用于压缩图像。如何计算8×8子图像上的离散傅立叶变换
这里是我到目前为止的代码:
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,如代码
感谢您的回复。我没有成功的dft代码这就是为什么我把它排除在外。我已经浏览过已经链接过的页面,但我无法理解使用8乘8与matlab提供的fft2函数的概念。 – cfl 2014-11-02 10:53:06
So croppedImage_spectral = fft2(croppedImage);不适合你吗?通常,二维dft沿着列和沿着图像的行进行一维dft。你可以阅读图像处理书籍中的理论。还有很好的matlab书籍。 – 2014-11-02 11:35:19
谢谢,最初我以为它不工作,因为我尝试它时遇到了一个随机错误。但只是在显示子图像(温度)时才意识到发生了错误。但适用于我使用子图像(真实(温度))。感谢您的帮助Tanja – cfl 2014-11-02 11:46:54