基于MATLAB的图片中字符的提取源代码
基于MATLAB的图片中字符的提取(源代码)function getPicChar %%建立字符提取函数,在MATLAB平台上直接运行即可%运用MATLAB的UI,直接打牌需要提取的字符图片即可
MATLAB 基于的图片中字符的提取(源代码) Ycount(k)<3&&Ycount(k-1)<3&& if getPicChar function %% 建立字符提取函数, Ycount(k-2)<3 MATLAB 在平台上直接运行即可 Yflag(k)=1; end %MATLABUI 运用的,直接打牌需要提取的字 end 符图片即可 Yflag2=[0Yflag(1:end-1)]; [filename, Yflag3=abs(Yflag-Yflag2); % 做差分运算 pathname,~]=uigetfile({;;}, '*.jpg''*.bmp''*.png''Ch [~,row]=find(Yflag3==1); % 找突变位置 ); oseapicture' picstr=[pathnamefilename]; row=[1rowm]; % 调整突变位置点 ~ischar(picstr) if row1=zeros(1,length(row)/2); % 截取图像的起始 ; return end 位置向量 pic=imread(picstr); % 打开图片 row2=row1; % 截取图像的终 止位置向量 length(size(pic))==3 if % 判断图片的维数,统 k=1:length(row) for 一为灰度图片 mod(k,2)==1; if % 奇数为起始 pic=rgb2gray(pic); row1((k+1)/2)=row(k); end else % 偶数为终止 pic=(pic<127); % 转化为二值图片 row2(k/2)=row(k); end pic=xylimit(pic); % 图片区域的第一次边界限 end 定 pic2=pic(row1(1):row2(1),:); % 截取第一列字符 alpha=1024/size(pic2,2); % 计算放缩比例 %%%%%%%%%%%%% 第一阶段 pic2=imresize(pic2,alpha); % 调整第一列字符 m=size(pic,1); 图片大小,作为基准 Ycount=zeros(1,m); k=2:length(row)/2 for i=1:m for Ycount(i)=sum(pic(i,:)); pictemp=imresize(pic(row1(k):row2(k),:),[size(pic end 2,1)size(pic2,2)]); lenYcount=length(Ycount); Yflag=zeros(1,lenYcount); pic2=cat(2,pic2,pictemp); % 横向连接图像块 k=1:lenYcount-2 for end Ycount(k)<3&&Ycount(k+1)<3&& if pic=xylimit(pic2); % 限定图像区域 Ycount(k+2)<3 Yflag(k)=1; end %%%%%%%%%%%%% 第二阶段 end [~,n]=size(pic); k=lenYcount:1+2 for Xcount=zeros(1,n);

