資源簡介
適用于圖片文字識(shí)別,對(duì)初學(xué)者的學(xué)習(xí)有巨大的作用,對(duì)同領(lǐng)域的研究人員的學(xué)者有很大的參考價(jià)值。

代碼片段和文件信息
%I=imread(‘24-1.jpg‘);?該圖像的試驗(yàn)結(jié)果讀者自行試驗(yàn)。
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
%%%%?邊緣點(diǎn)數(shù)量統(tǒng)計(jì)?與?S分量的紋理分割%%%%%%%%%
S=zeros(yx);
BW=?edge(HS_I‘canny‘0.2);%邊緣檢測,對(duì)邊緣像素點(diǎn)作統(tǒng)計(jì)分析。
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?
???????????%?根據(jù)上述的統(tǒng)計(jì)直方圖設(shè)定?S?的閾值
???????????if?((BW(ji)==1)&(S(ji)<=0.06)&(S(ji)>=0.01))?
??????????????BW1(ji)=1;
???????????end?
???????end
??end
t3=toc
tic
%%%%%%%%%%%%%?邊緣像素點(diǎn)數(shù)量統(tǒng)計(jì)?%%%%%%%%%%%%%%%%%%
?EdgePointsX=sum(BW1);?%?X方向
?AveragePointsX=mean(EdgePointsX);
?EPx=(1:x);
?
?
%%%%%%%%%%%%%?文字圖像區(qū)域分割?%%%%%%%%%%%%%%%%%%%
??????????????%?X?Direction
ColumnX=zeros(1x);
for?i=1:x
????if?(EdgePointsX(i)>=AveragePointsX)
????????ColumnX(i)=1;
????end
end
Nx=sum(ColumnX);?
Posx=zeros(1Nx);?%?挑出邊緣點(diǎn)數(shù)量大于平均值的位置
k=1;
for?i=1:x
????if?(EdgePointsX(i)>=AveragePointsX)
????????Posx(k)=i;
????????k=k+1;
????end
end
gapx=12;?????????????%?間隔小于10列的,區(qū)域合并
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);???%??最后一列大于平均值的位置作為,最后一個(gè)區(qū)域的切分位置
Spanx=zeros(1k);?%?共有k個(gè)區(qū)域
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方向邊緣點(diǎn)統(tǒng)計(jì)
?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);?%?挑出邊緣點(diǎn)數(shù)量大于平均值的位置
k=1;
for?i=1:y
????if?(EdgePointsY(i)>=AveragePointsY)
????????Posy(k)=i;
????????k=k+1;
????end
end
gapy=20;?????????????%?間隔小于30列的,區(qū)域合并
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);???%??最后一列大于平均值的位置作為,最后一個(gè)區(qū)域的切分位置
Spany=zeros(1k);?%?共有k個(gè)區(qū)域
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????7647??2003-09-22?22:36??文字識(shí)別\22-2.jpg
?????文件??????10807??2003-09-20?20:56??文字識(shí)別\24-1.jpg
?????文件???????3616??2017-05-02?09:37??文字識(shí)別\文字識(shí)別.m
?????目錄??????????0??2017-07-11?08:10??文字識(shí)別
-----------?---------??----------?-----??----
????????????????22070????????????????????4
- 上一篇:求Pi值的MPI并行程序
- 下一篇:實(shí)驗(yàn)四 OTL功率放大電路
評(píng)論
共有 條評(píng)論