数字图像采集与处理工程导论作业.docx
《数字图像采集与处理工程导论作业.docx》由会员分享,可在线阅读,更多相关《数字图像采集与处理工程导论作业.docx(14页珍藏版)》请在冰豆网上搜索。
数字图像采集与处理工程导论作业
“数字图像采集与处理工程导论”
实验报告
姓名:
***
学号:
0209****
年级:
2009级
班级:
0209**班
学院:
电子工程学院
专业:
信息对抗技术
电话:
***********
一
用Matlab语言完成如下实验:
(1)打开一幅BMP图像;
(2)将局部区域的灰度值进行改变;
(3)另存为一个新的BMP文件。
实验过程:
(1)选取
用matlab打开:
I=imread(’avril.bmp’)
(2)使用命令I(150:
300,:
)=300改变其部分区域值;
用命令:
image(I)
查看改变灰度后的结果如下:
(3)使用命令
imwrite(I,new.bmp’)
将修改后的图像另存为名为new.bmp的文件,可见在当前工作目录下产生了名为new.bmp的图像文件。
二
MATLAB编程实现傅里叶高通,低通滤波,给出算法原理及实验结果。
程序:
%%DOCUMENTTITLE
%INTRODUCTORYTEXT
filename='avril.jpg';
Img=imread(filename);
imshow(Img);
%functionIdealHighFilter(Img,p,q,d)
%
%if~isgray(Img)
Img=rgb2gray(Img);
%end;
figure
(1);
subplot(2,2,1);imshow(Img);title('原图像');
f=fftshift(fft2(Img));
subplot(2,2,2);imshow(abs(f),[]);title('原图像的傅里叶频谱');
subplot(2,2,3);imshow(log(abs(f)),[]);title('原图像的傅里叶变换取对数后的频谱');
[ab]=size(f);
a0=round(a/2);
b0=round(b/2);
fori=1:
a
forii=1:
b
d=10;
p=0.2;
q=0.5;
dis=sqrt((i-a0)^2+(ii-b0)^2);
ifdis>=d
h=1;
elseh=0;
end;
s(i,ii)=(p+q*h)*f(i,ii);
end;
%end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(2,2,4),imshow(s),title('低通滤波后的频谱');
end
%functionIdealLowFilter(Img,d)
%
%if~isgray(Img)
%Img=rgb2gray(Img);
%end;
figure
(2);
subplot(2,2,1);imshow(Img);title('原图像');
f=fftshift(fft2(Img));
subplot(2,2,2);imshow(abs(f),[]);title('原图像的傅里叶频谱');
subplot(2,2,3);imshow(log(abs(f)),[]);title('原图像的傅里叶变换取对数后的频谱');
[ab]=size(f);
a0=round(a/2);
b0=round(b/2);
fori=1:
a
forii=1:
b
d=10;
dis=sqrt((i-a0)^2+(ii-b0)^2);
ifdis<=d
h=1;
elseh=0;
end;
s(i,ii)=h*f(i,ii);
end;
%end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(2,2,4),imshow(s),title('高通滤波后的频谱');
End
实验结果:
三
找一个曝光不足的灰度(或彩色)图像,用matlab按照直方图均衡化的方法进行处理。
程序:
clc;
clear;
PS=rgb2gray(imread('3.jpg'));
subplot(2,2,1)
imshow(PS)
title('曝光不足的图像')
%绘制直方图
[m,n]=size(PS);
P=zeros(1,256);%预创建存放灰度出现概率的向量
fori=1:
256
P(i)=length(find(PS==(i-1)))/(m*n);%计算灰度概率,存入GP相应位置
end
subplot(2,2,2)
bar(0:
255,P,'g')%绘制直方图
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%直方图均衡化
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=P(j)+S1(i);%计算Sk
end
end
S2=round(S1*255);%将Sk归到相近级的灰度
fori=1:
256
P1(i)=sum(P(find(S2==i)));%计算现有每个灰度级出现的概率
end
subplot(2,2,4)
bar(0:
255,P1,'b')%显示均衡化后的直方图
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
%图像均衡化
PA=PS;
fori=0:
255
PA(find(PS==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素
end
subplot(2,2,3)
imshow(PA)%显示均衡化后的图像
title('均衡化后图像')
实验结果:
四
用matlab打开图像,添加椒盐,高斯噪声,然后用邻域平均法,中值滤波法进行平滑。
1实验程序:
clc;
clear;
%打开一幅图像,添加高斯、椒盐噪声,用邻域平均法、中值滤波法
%1.对图像添加高斯、椒盐噪声;
I=rgb2gray(imread('avril.jpg'));
figure
(1);
subplot(1,3,1);imshow(I);title('(a)原始图像');
P1=imnoise(I,'gaussian',0.06);%加入高斯噪声
subplot(1,3,2);imshow(P1);title('(b)高斯噪声污染的图片');
P2=imnoise(I,'salt&pepper',0.1);%加入椒盐噪声
subplot(1,3,3);imshow(P2);title('(c)椒盐噪声污染的图片');
%2.对图像进行均值滤波
L1=filter2(fspecial('average',3),P1)/255;%应用3*3窗的邻域平均滤波
figure
(2);
subplot(1,2,1);imshow(L1);title('邻域平均法处理高斯噪声图片');
L2=filter2(fspecial('average',3),P2)/255;%应用3*3窗的邻域平均滤波
figure
(2);
subplot(1,2,2);imshow(L2);title('邻域平均法处理椒盐噪声图片');
%3.对图像进行中值滤波
K1=medfilt2(P1);%应用缺省的3*3的邻域窗的中值滤波
figure(3);
subplot(1,2,1);imshow(K1,[]);title('中值滤波法处理高斯噪声图片');
K2=medfilt2(P2);
subplot(1,2,2);imshow(K2,[]);title('中值滤波法处理椒盐噪声图片');
实验结果:
五
用MATLAB打开一幅图像,用Roberts梯度法,sobel算子和拉普拉斯算子进行锐化,并比较结果。
1实验程序:
I=imread('avril.jpg');
figure
(1);
imshow(I);
figure
(2);
subplot(1,2,1);imshow(I);title('原始图像');
J=double(I);
[IX,IY]=gradient(J);%计算梯度
A=sqrt(IX.*IX+IY.*IY);
subplot(1,2,2);imshow(A,[]);title('Roberts梯度法锐化图像');
%Sobel算子锐化
S=imfilter(I,fspecial('sobel'));
figure(5);
subplot(1,2,1);imshow(S);title('Sobel算子锐化图像');
%laplacian算子锐化
LP=imfilter(I,fspecial('laplacian'));
subplot(1,2,2);imshow(LP);title('Laplacian算子锐化图像');
2实验结果:
原始图像:
3比较:
Robet算子锐化效果较明显,Sobel算子锐化后的边缘显得粗而亮,Laplance算子使噪声也增强,锐化不明显。