📄 zhenggai.txt
字号:
I=imread('304df6d5.jpg');
Y=rgb2gray(I);
figure(1);imshow(Y); title('灰度图象');
a=0.4;
f=double(Y);
d0=4;
b=fft2(f);
b=fftshift(b);
[X,Y]=size(b);
m=fix(X/2);
n=fix(Y/2);
for i=1:X
for j=1:Y
d=sqrt((i-m)^2+(j-n)^2);
if ( d<=d0)
h=a;
else
h=1+a;
end
result(i,j)=h*b(i,j);
end
end
result=ifftshift(result);
J2=ifft2(result);
g=uint8(real(J2));
figure;
imshow(g);title('图象细节信息');%减去原图的背影只保留高频信息
g=double(g);
X=min(min(g)+max(max(max(g)-min(min(g))))*0.6);%取阈值
[m n]=size(g);
for i=1:m
for j=1:n
if g(i,j)<X
g(i,j)=0;
else
g(i,j)=255;
end
end
end
figure;imshow(g,[]);title('图象二值化');%完成图像二值化
[Gx,Gy]=gradient(g); % 计算梯度
G=sqrt(Gx.*Gx); % 注意是矩阵点乘
BW1=G;
figure;
imshow(BW1); title('图象梯度锐化');% 第一种图像增强
b=medfilt2(BW1,[4,2]);
BW=im2bw(b,0.7);
figure;imshow(BW,[]);
se=strel('rectangle',[3,3]);
I4 = imdilate(BW,se);%膨胀
% se=strel('rectangle',[3,3]);
% I4=imclose(BW,se);
figure;imshow(I4);
% imshow(I4);
BW2=bwareaopen(I4,50);%滤波
figure;imshow(BW2);
[y,x]=size(BW2);
my1=double(BW2);
%%%Y方向%%%
y1=zeros(y,1);
for i=1:y
for j=1:x
if(my1(i,j)==1) % 白色RGB的灰度范围
y1(i,1)= y1(i,1)+1; % 白色象素点统计
end
end
end
[temp MaxY]=max(y1); % Y方向车牌区域确定
PY1=MaxY;
while ((y1(PY1,1)>=5)&&(PY1>1))
PY1=PY1-1;
end
PY2=MaxY;
while ((y1(PY2,1)>=5)&&(PY2<y))
PY2=PY2+1;
end
IY=g(PY1:PY2,:,:);
%%%%%%%% X 方向 %%%%%%%%%%
x1=zeros(1,x); % 进一步确定X方向的车牌区域
for j=1:x
for i=PY1:PY2
if(my1(i,j)==1)
x1(1,j)= x1(1,j)+1;
end
end
end
PX1=1;
while ((x1(1,PX1)<3)&&(PX1<x))
PX1=PX1+1;
end
PX2=x;
while ((x1(1,PX2)<3)&&(PX2>PX1))
PX2=PX2-1;
end
Plate=g(PY1:PY2,PX1:PX2,:);
%%%%
figure ,plot(y1);grid
figure,plot(x1);grid
figure,imshow(IY);
figure,imshow(Plate);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -