模式识别——识别数字

基本思想:

通过不同数字的像素点个数不同这一基本特征来对10个数字进行提取,基于MFC的数字识别;

通过查询数字的像素点来确定数字的具体识别方式,

由于在提取特征的过程中有些数字的像素点个数极其相似故采用了从不同角度来查询数字的像素点个数,在图片1/3处进行上下两面的像素点个数统计,以此来区分像素点个数接近的数字;

下面为统计出来的各数字的像素点个数:

数字

1/3出像素点个数

2/3处像素点个数

0

3481

6962

1

2574

3759

2

3680

5745

3

3535

6303

4

3112

7173

5

3281

5386

6

2564

6255

7

1735

5954

8

3646

6436

9

3502

6915

从上表可以看出来已经可以区分这10个数字了,当然选择的范围比较小,大概在200个像素点左右,如果想要得到更加精确的结果,可以将图像分割成四部分或者八部分统计各个部分的像素点个数,这样就会把数据分的更加分明,也便于统计匹配;

代码如下:

int k;

if(data>k)data=255;

elsedata=0;

for(j= 0; j < nh/3; j++)

      for(i = 0; i < nw; i++){

   if(this->m_pdata[j * nw + i]==0)

   count1++;

}

   for(j = nh/3; j < nh; j++)

        for(i = 0; i < nw; i++)

        {

           if(this->m_pdata[j * nw + i]==0)

              count2++;

        }



你可能感兴趣的:(模式识别——识别数字)