基于opencv的手写数字字符识别.doc

基于opencv的手写数字字符识别.doc

ID:61499429

大小:237.00 KB

页数:9页

时间:2021-02-07

基于opencv的手写数字字符识别.doc_第1页
基于opencv的手写数字字符识别.doc_第2页
基于opencv的手写数字字符识别.doc_第3页
基于opencv的手写数字字符识别.doc_第4页
基于opencv的手写数字字符识别.doc_第5页
资源描述:

《基于opencv的手写数字字符识别.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于OpenCV的手写数字字符识别2013级计算机软件与理论摘要本程序主要参照论文,《基于OpenCV的脱机手写字符识别技术》实现了,对于手写阿拉伯数字的识别工作。识别工作分为三大步骤:预处理,特征提取,分类识别。预处理过程主要找到图像的ROI部分子图像并进行大小的归一化处理,特征提取将图像转化为特征向量,分类识别采用k-近邻分类方法进行分类处理,最后根据分类结果完成识别工作。程序采用MicrosoftVisualStudio2010与OpenCV2.4.4在Windows7-64位旗舰版系统下

2、开发完成。并在Windowsxp-32位系统下测试可用。主流程图:细化流程图:1.预处理预处理的过程就是找到图像的ROI区域的过程,如下图所示:首先找到数字的边界框,然后大小归一化数字图片,主要流程如下图所示:主要代码:IplImagepreprocessing(IplImage*imgSrc,intnew_width,intnew_height){IplImage*result;IplImage*scaledResult;CvMatdata;CvMatdataA;CvRectbb;//boun

3、dingboxCvRectbba;//boundinbboxmaintainaspectratio//Findboundingbox找到边界框bb=findBB(imgSrc);cvGetSubRect(imgSrc,&data,cvRect(bb.x,bb.y,bb.width,bb.height));intsize=(bb.width>bb.height)?bb.width:bb.height;result=cvCreateImage(cvSize(size,size),8,1);cvSet

4、(result,CV_RGB(255,255,255),NULL);//将图像放中间,大小归一化intx=(int)floor((float)(size-bb.width)/2.0f);inty=(int)floor((float)(size-bb.height)/2.0f);cvGetSubRect(result,&dataA,cvRect(x,y,bb.width,bb.height));cvCopy(&data,&dataA,NULL);//ScaleresultscaledResult=

5、cvCreateImage(cvSize(new_width,new_height),8,1);cvResize(result,scaledResult,CV_INTER_NN);//Returnprocesseddatareturn*scaledResult;//直接返回处理后的图片}1.特征提取在拿到ROI图像减少了信息量之后,就可以直接用图片作为向量矩阵作为输入:voidbasicOCR::getData(){IplImage*src_image;IplImageprs_image;CvM

6、atrow,data;charfile[255];inti,j;for(i=0;i

7、(file,0);if(!src_image){printf("Error:Cantloadimage%s",file);//exit(-1);}//processfileprs_image=preprocessing(src_image,size,size);//生成训练矩阵,每个图像作为一个向量cvGetRow(trainClasses,&row,i*train_samples+j);cvSet(&row,cvRealScalar(i));//SetdatacvGetRow(trainD

8、ata,&row,i*train_samples+j);IplImage*img=cvCreateImage(cvSize(size,size),IPL_DEPTH_32F,1);//转换换8bitsimageto32位浮点数图片取值区间为[0,1]//scale = 0. = 1/255; cvConvertScale(&prs_image,img,0.,0);cvGetSubRect(img,&data,cvRect(0,0,size,size));CvMatrow_header,*row1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。