数字图像处理研究生期末作业解析.doc
文本预览下载声明
2015年在职研究生 专业期末考试试题(开卷)
姓名: 学号:
自己拍摄的图像完成以下作业(用Matlab语言完成)
打开一个BMP文件
将其局部区域的灰度值进行改变
另存为一个新的BMP文件
原图像:
zuoye1=imread(Hist1.bmp);
[m,n]=size(zuoye1);
f=zuoye1(50:200,500:1000);
zuoye2=imadjust(f,[0.5 0.75],[0 1],5);
zuoye=zuoye1;
zuoye(50:200,500:1000)=zuoye2;
imshow(zuoye1);
figure,imshow(zuoye)
新图像:
Matlab编程实现图像傅立叶高通、低通滤波,给出算法原理及实验结果。
高通滤波:
I= imread(Hist1.bmp);
F=rgb2gray(I);
figure,imshow(I);
title(原图像);
F=fftshift(fft2(I));
[f,h]=size(F);
f0=round(f/2);
h0=round(h/2);
d=10;
p=0.2;q=0.5;
for i=1:f
for j=1:h
distance=sqrt((i- f0)^2+(j- h0)^2);
if distance=d H=0;
else H=1;
end;
F(i,j)=(p+q*H)*F(i,j);
end;
end;
F=uint8(real(ifft2(ifftshift(F))));
figure(2);
imshow(F);title(高通滤波所得图像);
低通滤波:
I=imread(Hist1.bmp);
F=rgb2gray(I);
figure,imshow(I);
title(原图像);
F=fftshift(fft2(I));
[f,h]=size(F);
f0=round(f/2);
h0=round(h/2);
d=10;
for i=1:f
for j=1:h
distance=sqrt((i- f0)^2+(j- h0)^2);
if distance=d H=1;
else H=0;
end;
F(i,j)=H*F(i,j);
end;
end;
F=uint8(real(ifft2(ifftshift(F))));
figure(2);
imshow(F);
title(低通滤波所得图像);
找一幅曝光不足的灰度或彩色图像,用Matlab按照直方图均衡化的方法进行处理。
HD=imread(DCL.BMP);
imshow(HD)
title(输入的彩色BMP图像)
imwrite(rgb2gray(HD),HDTX.bmp);
HD=rgb2gray(HD);
figure,imshow(HD)
title(灰度化后的图像)
[m,n]=size(HD);
GP=zeros(1,256);
for k=0:255
GP(k+1)=length(find(HD==k))/(m*n);
end
figure,bar(0:255,GP,g)
title(原图像直方图)
xlabel(灰度值)
ylabel(出现概率)
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=GP(j)+S1(i);
end
end
S2=round(S1*256);
for i=1:256
GPeq(i)=sum(GP(find(S2==i)));
end
figure,bar(0:255,GPeq,b)
title(均衡化后的直方图)
xlabel(灰度值)
ylabel(出现概率)
figure,plot(0:255,S2,r)
legend(灰度变化曲线)
xlabel(原图像灰度级)
ylabel(均衡化后灰度级)
PA=HD;
for i=0:255
PA(find(HD==i))=S2(i+1);
end
figure,imshow(PA)
title(均衡化后图像)
imwrite(PA,JHCLTX.bmp);
用Matlab打开一幅图像,添加椒盐、高斯噪声,然后使用邻域平均法、中值滤波法进行平滑。
原图像:
添加椒盐噪声:
①邻域平均法处理
I0=imread(Hist2.bmp);
I=rgb2gray(I0);
J=imnoise(I,salt pepper,0.02);
figure,imshow(J)
显示全部