大连理工数字图像处理作业Word格式.docx
《大连理工数字图像处理作业Word格式.docx》由会员分享,可在线阅读,更多相关《大连理工数字图像处理作业Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
![大连理工数字图像处理作业Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/15/ed25d31d-f404-4de3-bedc-287192adc384/ed25d31d-f404-4de3-bedc-287192adc3841.gif)
stem((0:
N-1),y2,'
.'
);
C=fft(y2);
C1=fft(a).*fft(b);
all(C(:
)==C1(:
));
圆周卷积函数:
functiony=yuanzhou(x1,x2,N)
x1=[x1,zeros(1,N-length(x1))];
x2=[x2,zeros(1,N-length(x2))];
m=0:
1:
N-1;
H=zeros(N,N);
forn=1:
N
H(n,:
)=cirshift(x2,n-1,N);
end
y=x1*H'
;
结果:
4-9
t1=imread('
Lena.tif'
t=rgb2gray(t1);
imshow(t),title('
原图像'
[a,b]=size(t);
[x,y]=meshgrid(-a/2:
a/2-1,-b/2:
b/2-1);
z=sqrt(x.^2+y.^2);
c=(z<
15);
tf=fftshift(fft2(t));
imshow(mat2gray(log(1+abs(tf))));
title('
原图频域表示'
tf1=tf.*c;
ty2=ifft2(tf1);
imshow(abs(ty2),[]),title('
低通滤波之后图像'
c1=(z>
tf2=tf.*c1;
ty3=ifft2(tf2);
imshow(abs(ty3),[]),title('
高通滤波之后图像'
g1=mat2gray(fspecial('
gaussian'
512,10));
tf3=tf.*g1;
ty4=ifft2(tf3);
imshow(abs(ty4),[]),title('
高斯低通滤波器滤波之后图像'
bl=lbutter(c,15,1);
tfbl=tf.*bl;
ty5=ifft2(tfbl);
imshow(abs(ty5),[]),title('
巴特沃兹低通滤波之后图像'
巴特沃兹滤波器函数设计:
functionout=lbutter(im,d,n)
height=size(im,1);
width=size(im,2);
[x,y]=meshgrid(-floor(width/2):
floor((width-1)/2),-floor(height/2):
...
floor((height-1)/2));
out=1./(1+(sqrt
(2)-1)*((x.^2+y.^2)/d^2).^n);
结果
5-6
f=imread('
fg=rgb2gray(f);
tn=imnoise(fg,'
salt&
pepper'
0.05);
imshow(tn,[]),title('
a1=fspecial('
average'
tna1=filter2(a1,tn);
imshow(tna1,[]),title('
均值滤波之后图像'
tnz=medfilt2(tn,[3,3]);
imshow(tnz),title('
中值滤波之后图像'
tnout=outlier(tn,0.2);
imshow(tnout,[]),title('
异常值判断滤波之后D=0.2'
tnord=ordfilt2(tn,3,[010;
111;
010]);
imshow(tnord,[]),title('
伪中值滤波之后图像'
伪中值滤波函数:
functionres=outlier(im,d)
f=[0.1250.1250.125;
0.12500.125;
0.1250.1250.125];
imd=im2double(im);
imf=filter2(f,imd);
r=abs(imd-imf)-d>
0;
res=im2uint8(r.*imf+(1-r).*imd
6-2
t=imread('
1.tif'
[x,y]=meshgrid(1:
a,1:
b);
s1=1+sin(x/3+y/5);
s2=1+sin(x/5+y/1.5);
s3=1+sin(x/6+y/6);
ts1=(im2double(t)+s1/2)/2;
ts2=(im2double(t)+s2/2)/2;
ts3=(im2double(t)+s3/2)/2;
tps1=fftshift(fft2(ts1));
imshow(log(abs(tps1)),[]),title('
a组加噪声之后频域图'
),impixelinfo;
imshow(abs(ifft2(tps1)),[]),title('
)
tps1(:
114:
116)=0;
%(中心位置115,120;
143,138)
142:
144)=0;
tps1(119:
121,:
)=0;
tps1(137:
139,:
tps1_1=ifft2(tps1);
imshow(abs(tps1_1),[]),title('
a组噪声在陷波滤波器滤波之后结果'
tps2=fftshift(fft2(ts2));
imshow(log(abs(tps2)),[]),title('
b组加噪声之后频域图'
tps2(:
119:
121)=0;
%(中心位置120,102;
137,156)
136:
138)=0;
tps2(101:
103,:
tps2(155:
157,:
tps1_2=ifft2(tps2);
imshow(abs(tps1_2),[]),title('
b组噪声在陷波滤波器滤波之后结果'
tps3=fftshift(fft2(ts3));
imshow(log(abs(tps3)),[]),title('
c组加噪声之后频域图'
tps3(:
121:
123)=0;
%(中心位置122,122;
136,136
135:
137)=0;
tps3(121:
123,:
tps3(135:
137,:
tps1_3=ifft2(tps3);
imshow(abs(tps1_3),[]),title('
c组噪声在陷波滤波器滤波之后结果'
7-7
circles.tif'
256,1:
256);
t2=double(t).*((x+y)/2+64)+x+y;
t3=uint8(255*mat2gray(t2));
fun=inline('
im2bw(x,graythresh(x))'
[a,b]=size(t3);
img1=blkproc(t3,[a/2,b/2],fun);
subplot(221);
imshow(img1,[]),title('
分块矩阵大小[a/2,b/2]'
img2=blkproc(t3,[a/4,b/4],fun);
subplot(222);
imshow(img2,[]),title('
分块矩阵大小[a/4,b/4]'
img3=blkproc(t3,[a/8,b/8],fun);
subplot(223);
imshow(img3,[]),title('
分块矩阵大小[a/8,b/8]'
img4=blkproc(t3,[a/16,b/16],fun);
subplot(224);
imshow(img4,[]),title('
分块矩阵大小[a/16,b/16]'
8-6
t=rgb2gray(t);
t1=imnoise(t,'
0.1);
t2=imnoise(t,'
0,0.02);
tu1=edge(t1,'
sobel'
tu2=edge(t1,'
roberts'
tu3=edge(t1,'
prewitt'
tu4=edge(t1,'
log'
tu5=edge(t1,'
canny'
[0.01,0.5]);
%subplot(211);
imshow(im2bw(tu1,graythresh(double(tu1)))),title('
加椒盐噪声后sobel函数边缘处理之后'
%subplot(212);
%imshow(tu1);
imshow(im2bw(tu2,graythresh(double(tu2)))),title('
加椒盐噪声后roberts函数边缘处理之后'
imshow(im2bw(tu3,graythresh(double(tu3)))),title('
加椒盐噪声后prewitt函数边缘处理之后'
imshow(im2bw(tu4,graythresh(double(tu4)))),title('
加椒盐噪声后log函数边缘处理之后'
imshow(im2bw(tu5,graythresh(double(tu5)))),title('
加椒盐噪声后canny函数边缘处理之后'
tu21=edge(t2,'
tu22=edge(t2,'
tu23=edge(t2,'
tu24=edge(t2,'
tu25=edge(t2,'
imshow(im2bw(tu21,graythresh(double(tu21)))),title('
加高斯噪声后sobel函数边缘处理之后'
imshow(im2bw(tu22,graythresh(double(tu22)))),title('
加高斯噪声后roberts函数边缘处理之后'
imshow(im2bw(tu23,graythresh(double(tu23)))),title('
加高斯噪声后prewitt函数边缘处理之后'
imshow(im2bw(tu24,gr