% a.1
clear all;
close all;
f=imread('image.tif');
figure, imshow(f) %Fig.1 原圖
F=fft2(f);
S=abs(F);
figure, imshow(S,[])%Fig.2 離散傅立葉轉換之頻譜圖
Fc=fftshift(F);
figure, imshow(abs(Fc),[]) %Fig.3 置中離散傅立葉轉換之頻譜圖
% a.2
s2=log(1+abs(Fc));
figure;imshow(s2,[]) %Fig.4 對數轉換後 置中離散傅立葉轉換之頻譜圖
title('Spectrum of Log')
% b.1(5*5 mask)
y=imread('image2.tif');
a=filter2(fspecial('average',5),y);
figure;imshow(a) %Fig.5 平均濾波後之圖形
% b.2(5*5 mask)
y=imread('image2.tif');
m=medfilt2(y,[5 5]);
imshow(m)
figure;imshow(m) %Fig.6 中值濾波後之圖形
% b.3(5*5 mask)
f=imread('image2.tif');
order=input('請輸入巴特沃斯濾波器之階數');
cutoff=input('請輸入截止頻率');
g=blpf(f,order,cutoff);
figure;imshow(g);
% % function [g]=blpf(f,order,cutoff);
% % Usage [g]=blpf(f,order,cutoff);
% F=fft2(f);
% F=fftshift(F);
% [umax vmax]=size(F);
% for u=1:umax
% for v=1:vmax
% H(u,v)=1/(1+(sqrt(2)-1)*(sqrt(((umax/2-(u-1)).^2+(vmax/2-(v-1)).^2))/cutoff).^(2*order));
% end;
% end;
% G=H.*F;
% G=ifft2(G);
% g=sqrt(real(G).^2+imag(G).^2);
评论0