数字图像处理大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档