大连理工数字图像处理作业.docx

上传人:b****5 文档编号:2781421 上传时间:2022-11-15 格式:DOCX 页数:16 大小:1.44MB
下载 相关 举报
大连理工数字图像处理作业.docx_第1页
第1页 / 共16页
大连理工数字图像处理作业.docx_第2页
第2页 / 共16页
大连理工数字图像处理作业.docx_第3页
第3页 / 共16页
大连理工数字图像处理作业.docx_第4页
第4页 / 共16页
大连理工数字图像处理作业.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

大连理工数字图像处理作业.docx

《大连理工数字图像处理作业.docx》由会员分享,可在线阅读,更多相关《大连理工数字图像处理作业.docx(16页珍藏版)》请在冰豆网上搜索。

大连理工数字图像处理作业.docx

大连理工数字图像处理作业

数字图像作业

陈柯锦电子1102201181442

4-4

代码:

a=[7,6,5,4,-4,-5,-6,-7];

b=[2,2,-5,-5,6,6,-7,-7];

subplot(211);

stem(a);

subplot(212);

stem(b);

figure;

N=8;

a1=[azeros(1,N-length(a))];

b1=[bzeros(1,N-length(a))];

y1=conv(a1,b1);

z1=[zeros(1,N)y1(1:

(N-1))];

z2=[y1((N+1):

(2*N-1))zeros(1,N)];

z=z1(1:

(2*N-1))+z2(1:

(2*N-1))+y1(1:

(2*N-1));

y2=z(1:

N);

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:

1:

N

H(n,:

)=cirshift(x2,n-1,N);

end

y=x1*H';

end

结果:

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));

figure;

imshow(mat2gray(log(1+abs(tf))));

title('原图频域表示');

tf1=tf.*c;

figure;

ty2=ifft2(tf1);

imshow(abs(ty2),[]),title('低通滤波之后图像');

c1=(z>15);

tf2=tf.*c1;

ty3=ifft2(tf2);

figure;

imshow(abs(ty3),[]),title('高通滤波之后图像');

g1=mat2gray(fspecial('gaussian',512,10));

tf3=tf.*g1;

ty4=ifft2(tf3);

figure;

imshow(abs(ty4),[]),title('高斯低通滤波器滤波之后图像');

bl=lbutter(c,15,1);

tfbl=tf.*bl;

ty5=ifft2(tfbl);

figure;

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('Lena.tif');

fg=rgb2gray(f);

tn=imnoise(fg,'salt&pepper',0.05);

imshow(tn,[]),title('原图像');

a1=fspecial('average');

tna1=filter2(a1,tn);

figure;

imshow(tna1,[]),title('均值滤波之后图像');

tnz=medfilt2(tn,[3,3]);

figure;

imshow(tnz),title('中值滤波之后图像');

tnout=outlier(tn,0.2);

figure;

imshow(tnout,[]),title('异常值判断滤波之后D=0.2');

tnord=ordfilt2(tn,3,[010;111;010]);

figure;

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');

[a,b]=size(t);

[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;

figure;

imshow(abs(ifft2(tps1)),[]),title('原图像')

tps1(:

114:

116)=0;%(中心位置115,120;143,138)

tps1(:

142:

144)=0;

tps1(119:

121,:

)=0;

tps1(137:

139,:

)=0;

tps1_1=ifft2(tps1);

figure;

imshow(abs(tps1_1),[]),title('a组噪声在陷波滤波器滤波之后结果');

tps2=fftshift(fft2(ts2));

figure;

imshow(log(abs(tps2)),[]),title('b组加噪声之后频域图'),impixelinfo;

tps2(:

119:

121)=0;%(中心位置120,102;137,156)

tps2(:

136:

138)=0;

tps2(101:

103,:

)=0;

tps2(155:

157,:

)=0;

tps1_2=ifft2(tps2);

figure;

imshow(abs(tps1_2),[]),title('b组噪声在陷波滤波器滤波之后结果');

tps3=fftshift(fft2(ts3));

figure;

imshow(log(abs(tps3)),[]),title('c组加噪声之后频域图'),impixelinfo;

tps3(:

121:

123)=0;%(中心位置122,122;136,136

tps3(:

135:

137)=0;

tps3(121:

123,:

)=0;

tps3(135:

137,:

)=0;

tps1_3=ifft2(tps3);

figure;

imshow(abs(tps1_3),[]),title('c组噪声在陷波滤波器滤波之后结果')

 

结果:

 

7-7

代码:

t=imread('circles.tif');

[x,y]=meshgrid(1:

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=imread('Lena.tif');

t=rgb2gray(t);

t1=imnoise(t,'salt&pepper',0.1);

t2=imnoise(t,'gaussian',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);

figure;

imshow(im2bw(tu2,graythresh(double(tu2)))),title('加椒盐噪声后roberts函数边缘处理之后');

figure;

imshow(im2bw(tu3,graythresh(double(tu3)))),title('加椒盐噪声后prewitt函数边缘处理之后');

figure;

imshow(im2bw(tu4,graythresh(double(tu4)))),title('加椒盐噪声后log函数边缘处理之后');

figure;

imshow(im2bw(tu5,graythresh(double(tu5)))),title('加椒盐噪声后canny函数边缘处理之后');

tu21=edge(t2,'sobel');

tu22=edge(t2,'roberts');

tu23=edge(t2,'prewitt');

tu24=edge(t2,'log');

tu25=edge(t2,'canny',[0.01,0.5]);

figure;

imshow(im2bw(tu21,graythresh(double(tu21)))),title('加高斯噪声后sobel函数边缘处理之后');

figure;

imshow(im2bw(tu22,graythresh(double(tu22)))),title('加高斯噪声后roberts函数边缘处理之后');

figure;

imshow(im2bw(tu23,graythresh(double(tu23)))),title('加高斯噪声后prewitt函数边缘处理之后');

figure;

imshow(im2bw(tu24,gr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1