数字图像采集与处理作业范文.docx
《数字图像采集与处理作业范文.docx》由会员分享,可在线阅读,更多相关《数字图像采集与处理作业范文.docx(13页珍藏版)》请在冰豆网上搜索。
数字图像采集与处理作业范文
1.用Matlab语言完成如下实验:
1)打开一个BMP文件
2)将其局部区域的灰度值进行改变
3)另存为一个新的BMP文件
pic1=imread('get.bmp');
[m,n]=size(pic1);
f=pic1(50:
300,50:
300);
pic2=imadjust(f,[0.50.75],[]);
pic3=pic1;
pic3(50:
300,50:
300)=pic2;
imshow(pic1),figure,imshow(pic3)
(1)原图像
(2)局部灰度改变后的图像
2.Matlab编程实现图像傅里叶高通、低通滤波,给出算法原理及实现结果。
原图像
(1)高通滤波
I=imread('get.bmp');
I=rgb2gray(I);
figure
(1),imshow(I);
title('原图像');
s=fftshift(fft2(I));
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
p=0.2;q=0.5;
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=0;
elseh=1;
end;
s(i,j)=(p+q*h)*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
figure
(2);
imshow(s);title('高通滤波所得图像');
(2)低通滤波
I=imread('get.bmp');
I=rgb2gray(I);
figure
(1),imshow(I);
title('原图像');
s=fftshift(fft2(I));
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=1;
elseh=0;
end;
s(i,j)=h*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
figure
(2);
imshow(s);
title('低通滤波所得图像');
3.找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。
clearall
%一,图像的预处理,读入彩色图像将其灰度化
PS=imread('get.BMP'); %读入BMP彩色图像文件
imshow(PS) %显示出来 figureNO1
title('输入的彩色BMP图像')
imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存
PS=rgb2gray(PS); %灰度化后的数据存入数组
figure,imshow(PS) %显示灰度化后的图像,也是均衡化前的样品figureNO2
title('灰度化后的图像')
%二,绘制直方图
[m,n]=size(PS); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
fork=0:
255
GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
figure,bar(0:
255,GP,'g') %绘制直方图figureNO3
title('原图像直方图')
xlabel('灰度值')
ylabel('出现概率')
%三,直方图均衡化
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=GP(j)+S1(i); %计算Sk
end
end
S2=round(S1*256); %将Sk归到相近级的灰度
fori=1:
256
GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率
figure,bar(0:
255,GPeq,'b') %显示均衡化后的直方图figureNO4
title('均衡化后的直方图')
xlabel('灰度值')
ylabel('出现概率')
figure,plot(0:
255,S2,'r') %显示灰度变化曲线figureNO5
legend('灰度变化曲线')
xlabel('原图像灰度级')
ylabel('均衡化后灰度级')
%四,图像均衡化
PA=PS;
fori=0:
255
PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素
end
figure,imshow(PA) %显示均衡化后的图像figureNO6
title('均衡化后图像')
imwrite(PA,'PicEqual.bmp');
(1)输入的彩色BMP图像
(2)均衡化后的BMP图像
4.用Matlab打开一幅图像,添加椒盐、高斯噪声,然后使用邻域平均法、中值滤波法进行平滑。
(4种结果,比较哪种方法适合滤除哪种噪声)
(1)添加椒盐噪声的图像
(2)采用邻域平均法处理
I0=imread('get.bmp');
I=rgb2gray(I0);
J=imnoise(I,'salt&pepper',0.02);
K1=filter2(fspecial('average',7),J);
K2=filter2(fspecial('average',9),J);
figure,imshow(uint8(K1));title('7x7');
(3)采用中值滤波法处理
I0=imread('get.bmp');
I=rgb2gray(I0)
J=imnoise(I,'salt&pepper',0.02);
K=medfilt2(J,[77]);
figure,imshow(K);title('7x7');
(4)添加高斯噪声的图像
(5)采用邻域平均法处理
I0=imread('get.bmp');
I=rgb2gray(I0);
J=imnoise(I,'gaussian',0,0.02)
K=filter2(fspecial('average',7),J);
figure,imshow(uint8(K));title('7x7');
(6)采用中值滤波法处理后的图像
I0=imread('get.bmp');
I=rgb2gray(I0)
J=imnoise(I,'gaussian',0.02);
K=medfilt2(J,[77]);
figure,imshow(K);title('7x7');
对含有同一种噪声类型的不同图像采用2种滤波方法进行分析可知:
原始图像经过邻域平均法滤波处理后,噪声得到了抑制,但也使图像边缘变得模糊;中值滤波方法运算简单,易于实现,能较好地保护图像边界,但有时会失掉图像中的细线和小块的目标区域。
对含有不同噪声类型的同一图像采用这2种滤波方法进行处理后,分析可知:
邻域平均滤波方法对高斯噪声有较强的抑制效果,对椒盐噪声抑制效果不明显;中值滤波方法对高斯噪声的抑制效果不明显,对去除椒盐噪声效果明显。
5.用Matlab打开一幅图像,利用Roberts梯度法、Sobel算子和拉普拉斯算子进行锐化,并比较结果。
(1)Roberts梯度法
I=imread('get.bmp');
[H,W]=size(I);
M=double(I);
J=M;
fori=1:
H-1
forj=1:
W-1
J(i,j)=abs(M(i,j)-M(i+1,j+1))+abs(M(i+1,j)-M(i,j+1));
end;
end;
figure;imshow(I);title('原图');
figure;imshow(uint8(J));title('Roberts处理后');
(2)Sobel算子
I=imread('get.bmp');
[H,W]=size(I);
M=double(I);
J=M;
fori=2:
H-1
forj=2:
W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));
end;
end;
figure;imshow(I);title('原图');
figure;imshow(uint8(J));title('Sobel处理后');
(3)拉普拉斯算子
I=imread('get.bmp');
[H,W]=size(I);
M=double(I);
J=M;
fori=2:
H-1
forj=2:
W-1
J(i,j)=4*M(i,j)-[M(i+1,j)+M(i-1,j)+M(i,j+1)+M(i,j-1)];
end;
end;
figure;imshow(I);title('原图');
figure;imshow(uint8(J));title('锐化处理后的图');
锐化的实质是:
锐化图像g(m,n)=原图像f(m,n)+加重的边缘(α*微分)由实验效果对比图可以看出Sobel算子处理图像后使边缘有一定的模糊。
Laplacian检测模板的特点是各向同性,对孤立点及线端的检测效果好,但边缘方向信息丢失,对噪声敏感,整体检测效果不如Roberts梯度算子。