当前位置:
文档之家› 数字图像处理--图像的傅里叶变换
数字图像处理--图像的傅里叶变换
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);
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)
Welcome To
title('傅里叶变换');
JSH=fftshift(J);
figure,imshow(JSH);
title('傅里叶变换频移');
Ji=ifft2(J);
figure,imshow(Ji/256);
title('直接傅里叶变换');
JA=abs(J);
iJA=ifft2(JA);
figure,imshow(iJA/256);
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)绘制一个二值图像矩阵,并将其傅立叶函数可视化
实验名称
图像的傅立叶变换
课程名称
数字图像
姓名
专业、班级
学号
班内序号
实验时间
实验地点
实
验
内
容
1.傅立叶变换
A)傅立叶变换基本操作
B)利用MATLAB软件实现数字图像傅立叶变换的程序
C)绘制一个二值图像矩阵,并将其傅立叶函数可视化
2,离散余弦变换
A)使用dct2对图像‘autumn.tif’进行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
title('幅度傅里叶反变换');
JP=angle(J);
iJP=ifft2(JP);
figure,imshow(abs(iJP)*100);
title('相应的傅里叶反变换');
B)利用MATLAB软件实现数字图像傅立叶变换的程序
B=imread('M.JPG');
I=rgb2gray(B);
imshow(I);
F2=fftshift(F);
figure,imshow(log(abs(F2)),[-1 5],'notruesize');colormap(jet);
A)使用dct2对图像‘N.jpg’进行DCT变换。
RGB=imread('N.jpg');
imshow(RGB)
I=rgb2gray(RGB);
B)将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较。
C)利用DCT变换进行图像压缩。
实
验过Βιβλιοθήκη 程及结果
分
析
A)傅立叶变换基本操作
A=imread('N.JPG');
I=rgb2gray(A);
imshow(I);
title('原图像');
J=fft2(I);
figure,imshow(J);
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变换进行图像压缩。
figure,imshow(I)
J=dct2(I);
figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;
B)将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较。
RGB=imread('N.jpg');%B
Download !!!
欢迎您的下载,资料仅供参考!