数字图像处理大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理大作业
[HW5] [编号51] 学号:SC11009018 刘志辉
(1)程序代码
%灰度图像转换
RGB=imread('lzh.jpg');
subplot(3,3,1);imshow(RGB);title('原始图像');
Y=imresize(RGB,[480 640]);
subplot(3,3,2);imshow(Y);title('缩小后的图像');
I=rgb2gray(Y);
%I1=double(I);
subplot(3,3,3);imshow(I);title('灰度图像');
%均值滤波
K1=filter2(fspecial('average',5),I)/255;
subplot(3,3,4);imshow(K1);title('5*5均值滤波图像');
%锐化
a=1;
W1=[0 -a 0;-a 1+4*a -a;0 -a 0];
rh=imfilter(I,W1,'symmetric','conv');
subplot(3,3,5);imshow(rh);title('拉普拉斯锐化图像');
%直方图均衡化
J=histeq(I);
subplot(3,3,6);imshow(I);title('原始灰度图像');
subplot(3,3,7);imhist(I);title('原始图像直方图');axis([0 255 0 7000]);
subplot(3,3,8);imshow(J);title('均衡化后的图像');
subplot(3,3,9);imhist(J);title('均衡化后的直方图');axis([0 255 0 7000]);
处理结果图:
(2)程序代码
%边缘检测
BW1=edge(I,'sobel');
BW2=edge(I,'prewitt');
BW3=edge(I,'roberts');
subplot(2,2,1);imshow(I);title('原始灰度图像');
subplot(2,2,2);imshow(BW1);title('sobel边缘检测图像'); subplot(2,2,3);imshow(BW2);title('prewitt边缘检测图像'); subplot(2,2,4);imshow(BW3);title('roberts边缘检测图像');
运行结果:
(3)程序代码
%数字分割
RGB=imread('lzh.jpg');
Y=imresize(RGB,[480 640]);
I=rgb2gray(Y);
figure;imshow(I);title('原始灰度图像');
I1=im2bw(I,0.7);
figure;imshow(I1);title('二值化图像');
I2=edge(I1,'roberts',0.09,'both');
figure;imshow(I2);title('roberts边缘检测图像');
se=[1;1;1]; %线型结构元素
I3=imerode(I2,se); %腐蚀图像
figure,imshow(I3),title('腐蚀后边缘图像');
se=strel('rectangle',[25,25]); % 矩形结构元素
I4=imclose(I3,se);%图像聚类、填充图像
figure;imshow(I4),title('填充后图像');
I5=bwareaopen(I4,2500);%去除聚团灰度值小于2500的部分figure,imshow(I5),title('形态滤波后图像');
[y,x,z]=size(I5);
I6=double(I5);
Y1=zeros(y,1);
for i=1:y
for j=1:x
if(I6(i,j,1)==1)
Y1(i,1)= Y1(i,1)+1;
end
end
end
[temp MaxY]=max(Y1);
figure,plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素'); %求的车牌的行起始位置和终止位置
PY1=MaxY;
while ((Y1(PY1,1)>=50)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((Y1(PY2,1)>=50)&&(PY2 PY2=PY2+1; end IY=I(PY1:PY2,:,:); X1=zeros(1,x); for j=1:x for i=PY1:PY2 if(I6(i,j,1)==1) X1(1,j)= X1(1,j)+1; end end end figure,plot(0:x-1,X1),title('列方向像素点灰度值累计和'),xlabel('列值'),ylabel('像数'); %求的车牌的列起始位置和终止位置 PX1=1; while ((X1(1,PX1)<3)&&(PX1 PX1=PX1+1; end PX2=x;