资源简介
适用于图片文字识别,对初学者的学习有巨大的作用,对同领域的研究人员的学者有很大的参考价值。
代码片段和文件信息
%I=imread(‘24-1.jpg‘); 该图像的试验结果读者自行试验。
I=imread(‘22-2.jpg‘);
tic
[yxz]=size(I);
myI=double(I);
%%%%%%%%%%% RGB to HSI %%%%%%%%
HS_I=(myI(::1)+myI(::2)+myI(::3))/3;
t1=toc
tic
%%%% 边缘点数量统计 与 S分量的纹理分割%%%%%%%%%
S=zeros(yx);
BW= edge(HS_I‘canny‘0.2);%边缘检测,对边缘像素点作统计分析。
t2=toc
tic
ES=0;
for i=1:x
for j=1:y
if (BW(ji)==1)
S(ji)=1-min(myI(ji:))/HS_I(ji);
SR=round(S(ji)*100)/100; %四舍五入取整
ES=[ES SR];
end
end
end
ESx=(0:0.01:1);
BW1=zeros(yx);
for i=1:x
for j=1:y
% 根据上述的统计直方图设定 S 的阈值
if ((BW(ji)==1)&(S(ji)<=0.06)&(S(ji)>=0.01))
BW1(ji)=1;
end
end
end
t3=toc
tic
%%%%%%%%%%%%% 边缘像素点数量统计 %%%%%%%%%%%%%%%%%%
EdgePointsX=sum(BW1); % X方向
AveragePointsX=mean(EdgePointsX);
EPx=(1:x);
%%%%%%%%%%%%% 文字图像区域分割 %%%%%%%%%%%%%%%%%%%
% X Direction
ColumnX=zeros(1x);
for i=1:x
if (EdgePointsX(i)>=AveragePointsX)
ColumnX(i)=1;
end
end
Nx=sum(ColumnX);
Posx=zeros(1Nx); % 挑出边缘点数量大于平均值的位置
k=1;
for i=1:x
if (EdgePointsX(i)>=AveragePointsX)
Posx(k)=i;
k=k+1;
end
end
gapx=12; % 间隔小于10列的,区域合并
Partx0=zeros(1Nx);
Partx1=zeros(1Nx);
k=1;
Partx0(1)=Posx(1);
for i=2:Nx
d=Posx(i)-Posx(i-1);
if (d>gapx)
Partx1(k)= Posx(i-1);
k=k+1;
Partx0(k)=Posx(i);
end
end
Partx1(k)= Posx(Nx); % 最后一列大于平均值的位置作为,最后一个区域的切分位置
Spanx=zeros(1k); % 共有k个区域
for i=1:k
Spanx(i)=sum(ColumnX(Partx0(i):Partx1(i)));
end
[mytemp nPartx]=max(Spanx);
word_Xseg0=Partx0(nPartx);
word_Xseg1=Partx1(nPartx);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BWSeg=BW1(:word_Xseg0:word_Xseg1); % Y方向边缘点统计
BWT=BWSeg‘;
EdgePointsY=sum(BWT);
AveragePointsY=mean(EdgePointsY);
EPy=(1:y);
RowY=zeros(1y);
for i=1:y
if (EdgePointsY(i)>=AveragePointsY)
RowY(i)=1;
end
end
Ny=sum(RowY);
Posy=zeros(1Ny); % 挑出边缘点数量大于平均值的位置
k=1;
for i=1:y
if (EdgePointsY(i)>=AveragePointsY)
Posy(k)=i;
k=k+1;
end
end
gapy=20; % 间隔小于30列的,区域合并
Party0=zeros(1Ny);
Party1=zeros(1Ny);
k=1;
Party0(1)=Posy(1);
for i=2:Ny
d=Posy(i)-Posy(i-1);
if (d>gapy)
Party1(k)= Posy(i-1);
k=k+1;
Party0(k)=Posy(i);
end
end
Party1(k)= Posy(Ny); % 最后一列大于平均值的位置作为,最后一个区域的切分位置
Spany=zeros(1k); % 共有k个区域
for i=1:k
Spany(i)=sum(RowY(Party0(i):Party1(i)));
end
[mytemp nParty]=max(Spany);
word_Yseg0=Party0(nParty);
word_Yseg1=Party1(nParty);
word=I(word_Yseg0:word_Yseg1word_Xseg0:word_Xseg1:);
t4= toc
HS_I=uint8(HS_I);
%%%%%%%%%%%%%%%%%% Display %%%%%%%%%%%%%%%%%%%%
figure(1);
imshow(I);
figure(2);
imshow(HS_I);
figure(3);
imshow(BW);
figure(4);
hist(ESESx);grid
title(‘S Histogram of the Edge Pix
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7647 2003-09-22 22:36 文字识别\22-2.jpg
文件 10807 2003-09-20 20:56 文字识别\24-1.jpg
文件 3616 2017-05-02 09:37 文字识别\文字识别.m
目录 0 2017-07-11 08:10 文字识别
----------- --------- ---------- ----- ----
22070 4
- 上一篇:求Pi值的MPI并行程序
- 下一篇:实验四 OTL功率放大电路
相关资源
- 电子科技大学模式识别作业KL变换
- 国科大-2017-2018模式识别与机器学习期
- 图像识别的技术现状和发展趋势
- 国科大模式识别与机器学习2015-2016试
- 答题卡单张试卷识别,GUI.zip
- 图像中的数字识别源程序
- 基于SVM的手写字体识别
- 毕业设计-基于pca和lbp的人脸识别算法
- LR(0)完整的语法分析方法(拓广文
- 论文研究-基于DNN处理的鲁棒性I-Vect
- 2020 年TI 杯大学生电子设计竞赛 简易
- 清华大学模式识别第二次大作业
- opencv中图片添加文字
- ALIZE说话人识别系统理解.
- 人工神经网络水果识别
- 几种车牌字符识别算法的比较
- 摄影测量标志识别和解码
- cass 编码识别
- BP汉字识别GU写字板功能.zip
- zw_qq_37591909-11100331-AR开发实战项目之人
- LD3320语音识别模块与Arduino软串口通讯
- word域教程PDF文字版
- 视频行为识别数据库包括hmdb51、ucf1
- hmm的实现0-9数字的训练和识别
- 基于stm32f103zet6de条码识别
- 51单片机 LCD12864程序显示文字或者图片
- OPENCV函数手册(带目录)pdf
- Labview文字识别
- 文字编辑属性定义转普通文字cad插件
- 车牌字符模板,JPG格式,40*20
评论
共有 条评论