MATLAB在图像变换与滤波器设计的应用

MATLAB在图像变换与滤波器设计的应用

一、傅里叶变换

%%傅里叶变换
%%A基本操作
I = imread('hei.tif');
imshow(I);
title('源图像');
J1=rgb2gray(I);
J2= fft2(J1);
figure, imshow(J2);
title('傅里叶变换');
%%频移
JSh = fftshift(J2);
figure, imshow(JSh);
title('傅里叶变换频移');
%%直接傅立叶反变换
Ji=ifft2(J2);
figure, imshow(Ji/256);
title('直接傅立叶变换');
%%幅度
JA=abs(J2);
iJA=ifft2(JA);
figure, imshow(JA/256);
title('幅度博立叶反变换');
%%相位
JP=angle(J2);
iJP=ifft2(JP);
figure, imshow(abs(iJP)* 100);
title('相位傅立叶反变换');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%利用MATLAB软件实现数字图像傅立叶变换的程序
K=imread('hei.png');
I=rgb2gray(K);
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);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%绘制一个二值图像 矩阵,并将其傅立叶函數可视化
f=zeros(30,30);
f(5:24,13:17)=1;
subplot(2,1,1);%%矩阵显示
%%这里可以用notruesize,但是我没有成功,所以改用subplot
imshow(f);title('矩阵的显示');
F=fft2(f);
F2=log(abs(F));
subplot(2,1,2);%%矩阵显示
imshow(f);
imshow(F2,[]);title('傅里叶变换显示');
colormap(jet);
F=fft2(f,256,256);
figure;
subplot(1,2,1);%%矩阵显示
imshow(f);
imshow(F2,[]);title('傅里叶变换显示');
colormap(jet);
F2=fftshift(F);
subplot(1,2,2);%%矩阵显示
imshow(f);
imshow(F2,[]);title('傅里叶变换显示');
colormap(jet);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%利用傅立叶变换分析两幅图像的相关性,定位图像特征,读入图像并抽取其中的字母a
bw=imread('cameraman.tif');
a=bw(59:71,81:91);
subplot(1,2,1);
imshow(bw);title('bw');
subplot(1,2,2);
imshow(a);title('a');
C=real(ifft2(fft2(bw).*fft2(rot90(a,2),256,256)));%求相关性
figure,imshow(C,[]); 
thresh= max(C(:));
figure,imshow(C>thresh-10)
figure,imshow(C>thresh-15)

二、离散余弦变换

%%离散余弦变换(DCT)
%%使用dct2对图像autum进行DCT变换
RGB=imread('autumn.tif');
imshow(RGB)
I=rgb2gray(RGB);
figure,imshow(I)
J=dct2(I);
figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较
RGB=imread('autumn.tif');
I=rgb2gray(RGB);
J=dct2(I);
figure,imshow(I)
K=idct2(J);
figure,imshow(K,[0 255]);
J(abs(J)<10)=0;
K2=idct2(J);
figure,imshow(K2,[0 255]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%利用DCT变换进行图像压缩
K=imread('hei.tif');%%这里要用灰度图
I1=rgb2gray(K);
I=im2double(I1);
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);

三、Radon变换

%%Radon变换
%%使用Radon逆变換重建图像
P=phantom(256);%%创建256灰度级大脑图
imshow(P)
theta1=0:10:170;[R1,xp]=radon(P,theta1);
theta2=0:5:175;[R2,xp]=radon(P,theta2);
theta3=0:2:178;[R3,xp]=radon(P,theta3);
figure,imagesc(theta3,xp,R3);colormap(hot);colorbar;
I1=iradon(R1,10);
I2=iradon(R2,5);
I3=iradon(R3,2);
figure,imshow(I1)
figure,imshow(I2)
figure,imshow(I3)

四、MATLAB线性滤波器设计

%%Matlab线形滤波器设计
%%采用频率变换方式,通过一-维最优波纹FIR滤波器创建二维FIR滤波器
b=remez(10,[0 0.4 0.6 1],[1 1 0 0]);
h=ftrans2(b);
[H,w]=freqz(b,1,64,'whole');
colormap(jet(64))
plot(w/pi-1,fftshift(abs(H)));
figure,freqz2(h,[32 32]);

五、实验问题
(1)傅里叶变换有哪些重要的性质?
答:线性性、对称性、相似性、频移性、微分性、积分性、卷积与卷积定理、乘积定理、能量积分
(2)简述傅立叶频谱搬移的原理
答:傅立叶频谱搬移由傅里叶变化推导出,傅里叶变换简单通俗理解就是把看似杂乱无章的信号考虑成由一定振幅、相位、频率的基本正弦(余弦)信号组合而成,傅里叶变换的目的就是找出这些基本正弦(余弦)信号中振幅较大(能量较高)信号对应的频率,从而找出杂乱无章的信号中的主要振动频率特点。频谱就是时域信号经过傅立叶变换后的复信号。傅立叶变换可以将信号分解成幅值分量和频率分量,进而对时域信号进行频域分析,一个信号的频谱形状不变,只是频谱中的每条谱线从原来频率整体搬移到另一个频率附近。
(3)简述Fourier系数幅度、相位的物理意义
答:对幅度谱,是对信号轮廓和形状的描述;对相位谱,是对信号位置的描述
(4)图像的二维频谱在显示和处理时应注意什么?
答:进行傅里叶变换的图像应该是灰度图形,原rgb彩色图像无法进行相应变换。运用对数形式能增加显示细节,为了便于分析,使用fftshift函数将频谱的零频分量移至频谱的中心
(5)简述离散余弦变换(DCT)的原理
答:离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的,在有些变形里面需要将输入或者输出的位置移动半个单位。DCT变换利用傅立叶变换的性质。采用图像边界褶翻将图像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值