用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc

上传人:李医生 文档编号:5657225 上传时间:2020-07-20 格式:DOC 页数:13 大小:916KB
返回 下载 相关 举报
用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc_第1页
第1页 / 共13页
用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc_第2页
第2页 / 共13页
用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc_第3页
第3页 / 共13页
用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc_第4页
第4页 / 共13页
用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc》由会员分享,可在线阅读,更多相关《用matlab程序实现同时对比度实验、空间分辨率变化效果、实验幅度分辨率变化效果.doc(13页珍藏版)》请在三一文库上搜索。

1、作业11. 用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; imsh

2、ow(uint8(X2); 得到的图像如下: 2. 用matlab程序实验空间分辨率变化效果。程序代码如下:clear X=imread(picture1.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程序实验幅度分辨率变化效果.程序代码如下:clearX=imread(picture1.jpg);mm,nn=size(X);for i=1:mm for j=1:nn X128(

3、i,j)=2*(ceil(X(i,j)/2); endendfor i=1:mm for j=1:nn X64(i,j)=4*(ceil(X(i,j)/4); endend for i=1:mm for j=1:nn X32(i,j)=8*(ceil(X(i,j)/8); endend 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);im

4、show(uint8(X32);title(32级);得到的图像如下作业21. 用matlab作出图像的直方图。程序代码如下:clear;A = imread(picture2.jpg);I = rgb2gray(A);add = ;tab1 = zeros(1,256);for n = 0:255; X = I = n; add = add; sum(sum(X);end;a, b = size(I);final = add / (a*b);figure;stem(final, Marker, none);figure(2);imshow(I);得到的图像如下2. 用matlab实现图像的直

5、方图均衡化程序代码如下:clear allm=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);for i=1:mfor j=1:n r(A(i,j)+1)=r(A(i,j)+1)+1;endendr=r./l;for k=1:256for j=1:ky(k)=y(k)+r(j);endend for k=1:256 y(k)=floor(255*y(k)+0.5); endfor i=1:mfor j=1:nB(i,

6、j)=y(A(i,j)+1);endendA=uint8(A);B=uint8(B);subplot(2,2,1)imshow(A)title(原图像)subplot(2,2,2)imhist(A)title(原图像的直方图)subplot(2,2,3)imshow(B)title(经过均衡处理的图像)subplot(2,2,4)imhist(B)title(经过均衡处理后该图像的直方图)得到的图像如下作业31. 用 matlab实现多幅图像平均去高斯白噪声。程序代码如下:clear; A=imread(picture2.jpg); I=rgb2gray(A); imshow(I); a,b=

7、size(I); noise=randn(a,b)*30; X=double(I)+noise; Y=zeros(a,b); figure(2); imshow(uint8(X); for n=1:30 noise=randn(a,b)*30; X=double(I)+noise; Y=Y+double(X); end; Y=Y/n; figure(3); imshow(uint8(Y)得到的图像如下:原图加了高斯白噪声的图像:去噪后的图像:2. 用 matlab实现均值滤波去除高斯白噪声.程序代码如下:clear; A=imread(picture2.jpg); I=rgb2gray(A);

8、 figure; imshow(I); a,b=size(I); noise=randn(a,b)*30; I=double(I)+noise; I2=zeros(a+2,b+2); I3=zeros(a,b); for n=1:a for m=1:b I2(n+1,m+1)=I(n,m); end; end;figure(2);imshow(uint8(I2); for n=2:a for m=2:b I3(n-1,m-1)=I2(n-1,m-1)+I2(n-1,m)+I2(n-1,m+1)+I2(n,m-1)+I2(n,m)+I2(n,m+1)+I2(n+1,m-1)+I2(n+1,m)+

9、I2(n+1,m+1)/9; end; end;figure(3);imshow(uint8(I3);得到的图像如下:原图加高斯白噪声图像均值滤波去噪后图像3. 用 matlab实现中值滤波去除脉冲噪声。程序代码如下:clear; A=imread(picture2.jpg); I=rgb2gray(A); figure(1); imshow(I); X=zeros(1:9); a,b=size(I); Y=zeros(a+2,b+2); Z=zeros(a,b); for n=1:a for m=1:b Y(n+1,m+1)=I(n,m); end; end; for n=0:100 Y(r

10、ound(rand*a),round(rand*b)=0; end;for n=0:200 Y(round(rand*a),round(rand*b)=255; end; figure(2) imshow(uint8(Y); Y=double(Y); for n=2:a for m=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(I);得到图像如下:原图加脉冲噪声后图像中值滤波去噪后图像

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1