数字图像处理--图像的傅里叶变换
- 格式:doc
- 大小:1.65 MB
- 文档页数:5
figure,imshow(abs(iJP)*100);
title('相应的傅里叶反变换');
B)利用MATLAB软件实现数字图像傅立叶变换的程序B=imread('M.JPG');
I=rgb2gray(B);
imshow(I);
fftI=fft2(I);
sfftI=fftshift(fftI);
RR=real(sfftI);
II=imag(sfftI);
A=sqrt(RR.^2+II.^2);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;
figure;
imshow(A);
C)绘制一个二值图像矩阵,并将其傅立叶函数可视化f=zeros(30,30);
f(5:24:13:17)=1;
imshow(f,'notruesize')
F=fft2(f);
F2=log(abs(F));
figure,imshow(F2,[-1 5],'notruesize');colormap(jet);
F=fft2(f,256,256);
figure,imshow(log(abs(F)),[-1 5],'notruesize');colormap(jet);
F2=fftshift(F);
figure,imshow(log(abs(F2)),[-1 5],'notruesize');colormap(jet);
1.离散余弦变换
A)使用dct2对图像‘N.jpg’进行DCT变换。RGB=imread('N.jpg');
imshow(RGB)
I=rgb2gray(RGB);
figure,imshow(I)
J=dct2(I);
figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;
B)将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并
与原图像比较。
RGB=imread('N.jpg');%B
I=rgb2gray(RGB);
J=dct2(I);
figure,imshow(I);
J(abs(J)<10)=0;
K=idct2(J);
figure,imshow(K,[0 255])
J(abs(J)<10)=0;
K2=idct2(J);
figure,imshow(K2,[0 255])
C)利用DCT变换进行图像压缩。
I=imread('N.jpg');
I=im2double(I);
T=dctmtx(8);
B=blkproc(I,[8,8],'P1*x*P2',T,T');
mask=[1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0]
B2=blkproc(B,[8 8],'P1.*x',mask);
I2=blkproc(B2,[8 8],'P1.*x*P2','T',T); imshow(I)
figure,imshow(I2)