完整版用matlab程序实现同时对比度实验空间分辨率变化效果实验幅度分辨率变化效果.docx
- 文档编号:30099480
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:16
- 大小:589.25KB
完整版用matlab程序实现同时对比度实验空间分辨率变化效果实验幅度分辨率变化效果.docx
《完整版用matlab程序实现同时对比度实验空间分辨率变化效果实验幅度分辨率变化效果.docx》由会员分享,可在线阅读,更多相关《完整版用matlab程序实现同时对比度实验空间分辨率变化效果实验幅度分辨率变化效果.docx(16页珍藏版)》请在冰豆网上搜索。
完整版用matlab程序实现同时对比度实验空间分辨率变化效果实验幅度分辨率变化效果
作业1
1.用matlab程序实现同时对比度实验。
程序代码如下:
clear
m=256;
n=256;
ground_gray1=200;
X1=ones(m,n)*ground_gray1;
ground_gray2=100;
X2=ones(m,n)*ground_gray2;before_gray=150;m0=100;n0=100;
step=50;
X1(m0:
m0+step,n0:
n0+step)=before_gray;figure;
imshow(uint8(X1));
X2(m0:
m0+step,n0:
n0+step)=before_gray;figure;
imshow(uint8(X2));
得到的图像如下:
2.用matlab程序实验空间分辨率变化效果。
clear
X=imread('picturel.jpg'figure;
imshow(uint8(X));
[m,n]=size(X);
X1=X(1:
2:
m,1:
2:
n);figure;
imshow(uint8(X1));
imwrite(X1,'picture1.jpg'
);
得到的图形如下
'冰
3.用matlab程序实验幅度分辨率变化效果.
clear
X=imread('picture1.jpg'
[mm,nn]=size(X);
i=1:
mm
forj=1:
nn
X128(i,j)=2*(ceil(X(i,j)/2));end
for
endfor
i=1:
mm
forj=1:
nn
X64(i,j)=4*(ceil(X(i,j)/4));
end
);
endfor
i=1:
mm
forj=1:
nn
X32(i,j)=8*(ceil(X(i,j)/8));
end
end
figuresubplot(2,2,1);imshow(uint8(X));
title('256级');
subplot(2,2,2);
imshow(uint8(X128));
title('128级');
subplot(2,2,3);
imshow(uint8(X64));
title('64级');
subplot(2,2,4);
imshow(uint8(X32));
title('32级');
得到的图像如下
作业2
1.用matlab作出图像的直方图。
程序代码如下:
clear;
);
A=imread('picture2.jpg'
I=rgb2gray(A);
add=[];
tab1=zeros(1,256);
forn=0:
255;
X=I==n;
add=[add;sum(sum(X))];end;
[a,b]=size(l);final=add/(a*b);figure;
'Marker','none');
stem(final,figure
(2);imshow(I);
得到的图像如下
2.用matlab实现图像的直方图均衡化
程序代码如下:
clearall
);
m=imread('picture2.jpg'
A=rgb2gray(m);
[m,n]=size(A);B=zeros(size(A));
l=m*n;r=zeros(1,256);y=zeros(1,256);
A=double(A);
fori=1:
m
forj=1:
nr(A(i,j)+1)=r(A(i,j)+1)+1;
end
end
r=r./l;
fork=1:
256
forj=1:
ky(k)=y(k)+r(j);
end
end
end
fork=1:
256y(k)=floor(255*y(k)+0.5);
fori=1:
m
forj=1:
n
B(i,j)=y(A(i,j)+1);
end
end
A=uint8(A);
B=uint8(B);subplot(2,2,1)imshow(A)
titleC原图像')
subplot(2,2,2)
imhist(A)titleC原图像的直方图')subplot(2,2,3)imshow(B)
title('经过均衡处理的图像')
subplot(2,2,4)
imhist(B)
title('经过均衡处理后该图像的直方图')
得到的图像如下
作业3
1.用matlab实现多幅图像平均去高斯白噪声。
程序代码如下:
clear;
);
A=imread('picture2.jpg'
I=rgb2gray(A);imshow(I);
[a,b]=size(l);
noise=randn(a,b)*30;X=double(l)+noise;Y=zeros(a,b);
figure
(2);imshow(uint8(X));
forn=1:
30
noise=randn(a,b)*30;X=double(I)+noise;Y=Y+double(X);
end;
Y=Y/n;figure©);
imshow(uint8(Y))
得到的图像如下:
原图
加了高斯白噪声的图像:
去噪后的图像:
2.用matlab实现均值滤波去除高斯白噪声.
程序代码如下:
clear;
);
A=imread('picture2.jpg'I=rgb2gray(A);
figure;
imshow(l);
[a,b]=size(l);
noise=randn(a,b)*30;l=double(l)+noise;I2=zeros(a+2,b+2);
I3=zeros(a,b);
forn=1:
a
form=1:
b
I2(n+1,m+1)=l(n,m);end;
end;
figure
(2);
imshow(uint8(l2));
forn=2:
a
form=2:
b13(n-1,m-1)=[l2(n-1,m-1)+l2(n-1,m)+l2(n-1,m+1)+l2(n,m-
1)+I2(n,m)+l2(n,m+1)+l2(n+1,m-1)+l2(n+1,m)+l2(n+1,m+1)]/9;
end;
end;
figure©);imshow(uint8(l3));
得到的图像如下:
原图
加高斯白噪声图像
均值滤波去噪后图像
3.用matlab实现中值滤波去除脉冲噪声。
程序代码如下:
clear;
);
A=imread('picture2.jpg'I=rgb2gray(A);
figure
(1);
imshow(I);
X=zeros(1:
9);[a,b]=size(l);Y=zeros(a+2,b+2);Z=zeros(a,b);
forn=1:
a
form=1:
b
Y(n+1,m+1)=l(n,m);
end;
end;
forn=0:
100
Y(round(rand*a),round(rand*b))=0;end;
forn=0:
200
Y(round(rand*a),round(rand*b))=255;end;
figure
(2)
imshow(uint8(Y));
Y=double(Y);
forn=2:
a
form=2:
b
X=[Y(n-1,m-1),Y(n-1,m),Y(n-1,m+1),Y(n,m-1),Y(n,m),Y(n,m+1),Y(n+1,m-1),Y(n+1,m),
Y(n+1,m+10)];
X=sort(X);
Z(n-1,m-1)=X(5);
end;
end;
figure(3);
imshow(uint8(l));
得到图像如下:
原图
加脉冲噪声后图像
中值滤波去噪后图像
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 matlab 程序 实现 同时 对比度 实验 空间 分辨率 变化 效果 幅度