2023年12月11日發(作者:議論抒情)

matlab圖片中找字,基于MATLAB的圖片中字符的提取(源代
碼)
基于MATLAB的圖片中字符的提取(源代碼)
function getPicChar %%建立字符提取函數,在MATLAB平臺上直接運行即可
%運用MATLAB的UI,直接打牌需要提取的字符圖片即可
[filename,
pathname,~]=uigetfile({'*.jpg';'*.bmp';'*.png'},'Ch o a picture');
picstr=[pathname filename];
if ~ischar(picstr)
return;
end
pic=imread(picstr); %打開圖片
if length(size(pic))==3 %判斷圖片的維數,統一為灰度圖片
pic=rgb2gray(pic);
end
pic=(pic<127); %轉化為二值圖片
pic=xylimit(pic); %圖片區域的第一次邊界限定
%%%%%%%第一階段%%%%%%
m=size(pic,1);
Ycount=zeros(1,m);
for i=1:m
Ycount(i)=sum(pic(i,:));
end
lenYcount=length(Ycount);
Yflag=zeros(1,lenYcount);
for k=1:lenYcount-2
if Ycount(k)<3 && Ycount(k+1)<3 && Ycount(k+2)<3
Yflag(k)=1;
end
end
for k=lenYcount:1+2
if Ycount(k)<3 && Ycount(k-1)<3 && Ycount(k-2)<3
Yflag(k)=1;end
end
Yflag2=[0 Yflag(1:end-1)];
Yflag3=abs(Yflag-Yflag2); %做差分運算[~,row]=find(Yflag3==1); %找突變位置
row=[1 row m]; %調整突變位置點row1=zeros(1,length(row)/2); %截取圖像的起始位置向量
row2=row1; %截取圖像的終止位置向量
for k=1:length(row)
if mod(k,2)==1; %奇數為起始
row1((k+1)/2)=row(k);
el%偶數為終止
row2(k/2)=row(k);
end
end
pic2=pic(row1(1):row2(1),:); %截取第一列字符alpha=1024/size(pic2,2); %計算放縮比例
pic2=imresize(pic2,alpha); %調整第一列字符圖片大小,作為基準
for k=2:length(row)/2
pictemp=imresize(pic(row1(k):row2(k),:),[size(pic 2,1) size(pic2,2)]);
pic2=cat(2,pic2,pictemp); %橫向連接圖像塊end
pic=xylimit(pic2); %限定圖像區域%%%%%%%第二階段%%%%%%
[~,n]=size(pic);
Xcount=zeros(1,n);
for j=1:n
Xcount(j)=sum(pic(:,j));
本文發布于:2023-12-11 19:01:26,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1702292487243247.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:matlab圖片中找字,基于MATLAB的圖片中字符的提取(源代碼).doc
本文 PDF 下載地址:matlab圖片中找字,基于MATLAB的圖片中字符的提取(源代碼).pdf
| 留言與評論(共有 0 條評論) |