| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1547 人关注过本帖
标题:一段字符识别的算法实现,没看懂什么意思,有大侠指点下吗?
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
已结贴  问题点数:20 回复次数:10 
一段字符识别的算法实现,没看懂什么意思,有大侠指点下吗?
程序代码:
//开始识别
    int Num1[4]={0};    //下行结果存储
    int Num2[4]={0};    //上行结果存储
    int Num[4]={0};     //存储最终结果
    int Num3[4]={0};    //区别5和8的标记
    int count=0;       //计数器

    int m=4;                                        //从0开始的
    int x=0;
    int y=0;
   
    for (int n=7; n<fileinfo.biWidth;n++)           //下面一行
    {
        if(rgb[m*fileinfo.biWidth+n].rgbtRed==0 && y<3)
        {
            x=x+1;
        }
        else
        {
            if(x >=2)
            {
                while(Num1[y]!=0)
                {
                    y=y+1;
                }
                Num1[y]=x;
                x=0;
            }
        }
    }
   
    m=fileinfo.biHeight-4;                     //上面一行
    x=0;
    y=0;
    for (int a=7; a<fileinfo.biWidth;a++)                   
    {
        if(rgb[m*fileinfo.biWidth+a].rgbtRed==0 && y<3)
        {
            x=x+1;
        }
        else
        { 
            if(x >=2)
            {
                while(Num3[y]!=0)
                {
                    y=y+1;
                }
                Num3[y]=x;
                x=0;
            }
        }
    }
   
    m=fileinfo.biHeight-5;
    x=0;
    y=0;
   
    for (int c=7; c<fileinfo.biWidth;c++)          //中间一行
    {
        if(rgb[m*fileinfo.biWidth+c].rgbtRed==0 && y<3)
        {
            x=x+1;
        }
        else
        { 
            if(x >=2)
            {
                while(Num2[y]!=0)
                {
                    y=y+1;
                }   
                Num2[y]=x;
                x=0;
            }
        }
    }
   
    for(int z=0;z<4;z++)
    {
        if(Num1[z]==3 &&Num3[z]==3)
        {
          Num[z]=0;
        }
        if(Num1[z]==8 &&Num3[z]==3)
        {
          Num[z]=1;
        }
        if(Num1[z]==8 && Num3[z]==5)
        {
          Num[z]=2;
        }
        if(Num1[z]==5 &&Num3[z]==5 && Num2[z]==8)
        {
          Num[z]=3;
        }
        if(Num1[z]==2 &&Num3[z]==2)
        {
          Num[z]=4;
        }
        if(Num1[z]==5 && Num3[z]==8 )
        {
          Num[z]=5;
        }
        if(Num1[z]==4 &&Num3[z]==4 && Num2[z]==6)
        {
          Num[z]=6;
        }
        if(Num1[z]==2 &&Num3[z]==8)
        {
          Num[z]=7;
        }
        if(Num1[z]==5 &&Num3[z]==5 && Num2[z]==7)
        {
          Num[z]=8;
        }
        if(Num1[z]==4 && Num3[z]==4 &&Num2[z]==7)
        {
          Num[z]=9;
        }
    }
搜索更多相关主题的帖子: 算法 
2012-08-05 21:40
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:4 
这像是从某位图里解析数字字型,解析方法没见过,应该是针对特定字体及字号分析出的一种特定的识别方法。

如果你能将识别的样本也提供上来我想我就可以给你解释这一识别方法的原理了。

重剑无锋,大巧不工
2012-08-05 23:21
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:4 
学习了!

做自己喜欢的事!
2012-08-06 09:14
ly2222
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:217
专家分:618
注 册:2012-6-15
收藏
得分:4 
没看懂
2012-08-06 11:09
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
86903829autoCheck.rar (418.65 KB)

附件为完整 源码,其中有测试样本图片!

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2012-08-06 22:15
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
不巧现在只能用手机上网,明天我下载看看

重剑无锋,大巧不工
2012-08-06 22:26
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:4 
打都打不开。 木有VC6的MFC库文件。
2012-08-07 13:37
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
差点忘了这事,先下载下来。晚一点看看

重剑无锋,大巧不工
2012-08-07 13:46
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
脱机字符识别:手写数字识别之Fisher线性判别,手写数字识别之模板匹配法,数字识别之神经网络法,细化算法-Offline Character Recognition : handwritten figures identifiable Fisher Linear Discriminant, handwritten figures identifiable template matching method, digital identification neural network, thinning algorithm 更多
0

-

http://www.
http://www.

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2012-08-07 23:34
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:4 
呵呵,这是一个针对特定图片的数字判断模块。
首先,需要特殊背景,rgb中的红色不为0的背景;
其次,能判断4及以下个字符,int Num1[4]={0};
第三,字体的像素需按照一定格式存储,你可以放大图片总结像素特点。一般情况,第一行和最后一行的像素个数能判断一个数字,有些数字判断需要借助第二行的像素个数。
第四,这种判断只能对非压缩图片,如bmp,如果其他图片,需要先转成非压缩图片。

这算作人工智能中的一种简单模式匹配。比较常用在:车辆监控,数字屏幕处理,认证码等等。


[ 本帖最后由 silent_world 于 2012-8-8 11:19 编辑 ]
2012-08-08 11:16
快速回复:一段字符识别的算法实现,没看懂什么意思,有大侠指点下吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028395 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved