课程设计
平台:Matlab App designer
功能实现:ID号码识别
目的:
1.Matlab代码编写能力进阶;
2.掌握图像形态学操作和图像相似度匹配
3.学会利用Matlab GUI设计图形交互界面,开发有趣的应用;
演示:
1.读取图片、图像增强处理、二值化处理及ID号码识别
2.直接输入ID号码进行信息提取
代码示例:
识别按钮的回调函数:
[m,n,~]=size(app.Pic);%图像的像素为width*height
%%%%%蓝色字体变黑
myI=double(app.Pic);
I=app.Pic;
for i=1:m
for j=1:n
if((myI(i,j,1)>=15)&&(myI(i,j,1)<=130)&&((myI(i,j,2)<=165)&&(myI(i,j,2)>=90))&&((myI(i,j,3)<=220)&&(myI(i,j,3)>=135))) % 蓝色RGB的灰度范围
I(i,j,1)=40; %红色分量
I(i,j,2)=40; %绿色分量
I(i,j,3)=40; %蓝色分量
end
end
end
%图像边缘裁剪掉
width=round(0.9*n);height=round(0.85*m);
rx=round(0.05*n);cy=round(0.075*m);
I=subim(app,I,height,width,rx,cy);
%倘若是彩色图,先转换成灰度图
if sum(size(I)>0)==3
I=rgb2gray(I);
end
x=3;%行数分为x部分
y=1;%列数分为y部分
BW=erzhihua(app,I,x,y);
[n,m,~]=size(BW);%图像的像素为m*n
c = [0.65*m 0.65*m m m];
r = [0 0.85*n 0.85*n 0];
BW = roifill(BW,c,r);
BW=imadjust(BW);%使用imadjust函数对图像进行增强对比度
% Convert to BW
threshold = graythresh(BW);
BW =~im2bw(BW,0.6*threshold);
[~,image_w]=size(BW);
% 去除掉面积小于(imagen/80)像素的白色区域
app.Bw = bwareaopen(BW,floor(image_w/80));
imshow(app.Bw,'parent',app.UIAxes_3);
欢迎交流
WX: wwggdd22