Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2015-05-09
帖子: 1
声望力: 0 ![]() |
![]()
我用的是MATLAB R2012b win7 64bit。我要识别的是一种象形文字,处理的思路是把图像灰度化、二值化处理之后,再找出图像的轮廓,最后用几条平均间距或者不平均间距的横线和竖线去切割图像,并记录和图像的交点数。已经编写到能够找出图像轮廓,求大神帮忙,如何处理切割图像和记录交点数。已编写的代码如下:
i=imread('3_10.png'); i1=rgb2gray(i);%i1灰度图像 i2=im2bw(i1);% i2是二值图像,不需要求阈值 [m,n]=size(i2); % 读取多少行多少列 % 矩阵取值 leftj=0; %寻找图像中的文字最左端 for j=1:n for i=1:m if(i2(i,j)==0) leftj=j; break; end end if(leftj>0) break; end end rightj=0;%寻找图像中的文字最右端 for j=n:-1:1 for i=1:m if(i2(i,j)==0) rightj=j; break; end end if(rightj>0) break; end end upi=0;%寻找图像中的文字最上端 for i=1:m for j=1:n if(i2(i,j)==0) upi=i; break; end end if(upi>0) break; end end downi=0;%寻找图像中的文字最下端 for i=m:-1:1 for j=1:n if(i2(i,j)==0) downi=i; break; end end if(downi>0) break; end end newi=i2(upi:downi,leftj:rightj) 此帖于 2015-05-11 13:27 被 jinshi 编辑。 原因: 代码更改 |
![]() |
![]() |