欢迎来到天天文库
浏览记录
ID:32398469
大小:56.62 KB
页数:4页
时间:2019-02-04
《bmp图像的数字识别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、题目:BMP图像的数字识别学号:姓名:BMP图像的数字识别一、实验目的(1)了解模版匹配算法;(2)实现bmp格式图像印刷体数字的识别。二、实验环境(1)软件:WindowsXp、VisualDSP++5.0(2)硬件:仿真器、EBF-561实验平台三、算法描述本实验采用模版匹配中最简单的像素点重合的方法,将待测图像中的数字与模板库中德各个数字进行对比,认为待测数字就是模板库中与其重合像素点最多的数字。当bmp图像读入实验板存储空间之后,imgbuf指针指向其像素点数据的首地址。(1)模板库的建立将包含0—9十个数字的十
2、张bmp图像读入,将其像素信息分别存入十个50*50的二维数组中。实验中规定灰度值低于50的为有效像素点,其对应的二维数组中的数值定义为1,灰度值大于50的认为是无效点,其对应的二维数组中的数值定义为0.(2)待检测图像中的数字分离如输入图像包含n*m个数字,则需要将n*m个数字分离开之后,分别于模板库匹配并分别识别,将识别结果存入result[m*n]的数组中。(3)模版的匹配与识别依次识别每一位数字。将每一位数字的像素点信息存入50*50的名为t二维数组中,有效像素点定义为1,无效像素点定义为0.将得到的分离后的数字
3、的二维数组t与各个模版进行匹配。由于模版和待测数字中德有效像素点在数组中均表示为1,可通过对应点相加之后对2取余数再相加得到结果sum,比较待检测图像与十个模版得到的sum值,sum最小的表示重合点最多,即认为待检测数字为该数字。四、实验步骤(1)上机完善BMP图像的数字识别程序;(2)搭建实验硬件环境;(3)打开VisualDSP++集成开发环境,建立Session状态;(4)打开并运行工程;(5)调试程序;(6)在实验板上检查识别效果。五、实验结果将程序下载到板子上,可以看到讲图片中的数字进行了正确了识别,结果稳定可
4、靠。六、主要程序及解释char*ImageNumReg(intContW,intContH){for(i=1;i<=ContH;i++){for(j=1;j<=ContW;j++){for(kk=0;kk5、ad.biWidth+jj)<50)t[ii-H[i].Up][jj-W[j].Left]=1;//小于50,有效置1elset[ii-H[i].Up][jj-W[j].Left]=0//大于50,无效置0}}for(kk=0;kk<10;kk++){ss[kk]=0;}for(kk=0;kk6、m]+t[kk][mm])%2;ss[3]+=(a3[kk][mm]+t[kk][mm])%2;ss[4]+=(a4[kk][mm]+t[kk][mm])%2;ss[5]+=(a5[kk][mm]+t[kk][mm])%2;ss[6]+=(a6[kk][mm]+t[kk][mm])%2;ss[7]+=(a7[kk][mm]+t[kk][mm])%2;ss[8]+=(a8[kk][mm]+t[kk][mm])%2;ss[9]+=(a9[kk][mm]+t[kk][mm])%2;}}for(k=0;k<9;k++)//找到最7、小的sum对应的数字{if(ss[k]>ss[k+1])result[(i-1)*ContW+j-1]=k+1;elsess[k+1]=ss[k];}}}returnresult;}七、实验总结这次实验用到的算法在编程实现上并没有什么难度,主要是对算法和数字识别过程的理解。刚开始编程的时候走了很多弯路,主要是因为对算法实现的过程不是特别的明白,后来经过自己的仔细推敲,在做了深入理解之后,很轻松的就完成了任务。
5、ad.biWidth+jj)<50)t[ii-H[i].Up][jj-W[j].Left]=1;//小于50,有效置1elset[ii-H[i].Up][jj-W[j].Left]=0//大于50,无效置0}}for(kk=0;kk<10;kk++){ss[kk]=0;}for(kk=0;kk6、m]+t[kk][mm])%2;ss[3]+=(a3[kk][mm]+t[kk][mm])%2;ss[4]+=(a4[kk][mm]+t[kk][mm])%2;ss[5]+=(a5[kk][mm]+t[kk][mm])%2;ss[6]+=(a6[kk][mm]+t[kk][mm])%2;ss[7]+=(a7[kk][mm]+t[kk][mm])%2;ss[8]+=(a8[kk][mm]+t[kk][mm])%2;ss[9]+=(a9[kk][mm]+t[kk][mm])%2;}}for(k=0;k<9;k++)//找到最7、小的sum对应的数字{if(ss[k]>ss[k+1])result[(i-1)*ContW+j-1]=k+1;elsess[k+1]=ss[k];}}}returnresult;}七、实验总结这次实验用到的算法在编程实现上并没有什么难度,主要是对算法和数字识别过程的理解。刚开始编程的时候走了很多弯路,主要是因为对算法实现的过程不是特别的明白,后来经过自己的仔细推敲,在做了深入理解之后,很轻松的就完成了任务。
6、m]+t[kk][mm])%2;ss[3]+=(a3[kk][mm]+t[kk][mm])%2;ss[4]+=(a4[kk][mm]+t[kk][mm])%2;ss[5]+=(a5[kk][mm]+t[kk][mm])%2;ss[6]+=(a6[kk][mm]+t[kk][mm])%2;ss[7]+=(a7[kk][mm]+t[kk][mm])%2;ss[8]+=(a8[kk][mm]+t[kk][mm])%2;ss[9]+=(a9[kk][mm]+t[kk][mm])%2;}}for(k=0;k<9;k++)//找到最7、小的sum对应的数字{if(ss[k]>ss[k+1])result[(i-1)*ContW+j-1]=k+1;elsess[k+1]=ss[k];}}}returnresult;}七、实验总结这次实验用到的算法在编程实现上并没有什么难度,主要是对算法和数字识别过程的理解。刚开始编程的时候走了很多弯路,主要是因为对算法实现的过程不是特别的明白,后来经过自己的仔细推敲,在做了深入理解之后,很轻松的就完成了任务。
6、m]+t[kk][mm])%2;ss[3]+=(a3[kk][mm]+t[kk][mm])%2;ss[4]+=(a4[kk][mm]+t[kk][mm])%2;ss[5]+=(a5[kk][mm]+t[kk][mm])%2;ss[6]+=(a6[kk][mm]+t[kk][mm])%2;ss[7]+=(a7[kk][mm]+t[kk][mm])%2;ss[8]+=(a8[kk][mm]+t[kk][mm])%2;ss[9]+=(a9[kk][mm]+t[kk][mm])%2;}}for(k=0;k<9;k++)//找到最
7、小的sum对应的数字{if(ss[k]>ss[k+1])result[(i-1)*ContW+j-1]=k+1;elsess[k+1]=ss[k];}}}returnresult;}七、实验总结这次实验用到的算法在编程实现上并没有什么难度,主要是对算法和数字识别过程的理解。刚开始编程的时候走了很多弯路,主要是因为对算法实现的过程不是特别的明白,后来经过自己的仔细推敲,在做了深入理解之后,很轻松的就完成了任务。
此文档下载收益归作者所有