暑期会计师事务所实践报告及数字图像处理实习报告_第1页
暑期会计师事务所实践报告及数字图像处理实习报告_第2页
暑期会计师事务所实践报告及数字图像处理实习报告_第3页
暑期会计师事务所实践报告及数字图像处理实习报告_第4页
暑期会计师事务所实践报告及数字图像处理实习报告_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

暑期会计师事务所实践报告前言在当今社会,经济的发展日趋快速,各个企事业单位的经济业务在快速增长,这就使得社会对会计人员有了更高的重视和更严格的要求,我们作为即将步入社会的未来的会计专业人员,为了满足和顺应社会的要求,增强社会竞争力,更应该增强自身的素质,培养较强的会计操作能力和会计道德素质。而最直接的途径就是参加实习。20**年暑假,我来到广东省xx会计师事务所实习,希望能通过此次实践让在学校学习到的知识实际与实际相结合,学以致用,对社会的了解,培养和训练自己认识、观察社会以及分析、解决问题的能力,初步掌握社会调查方法,提高专业技能。这是一家小型会计师事务所,事务所拥有注册会计师8人、注册税务师10人、会计师18人以及相应各级业务助理人员共计41人,其中95%以上人员具有大专以上学历。单位主要经营范围包括:审计企业会计报表,出具审计报告;验资企业资本,出具验资报告;办理企业合并、分立、清算事宜中的审计业务,出具相关报告;承办会计咨询、会计服务;法律、行政法规规定的其他审计业务。事务所也积极参加各种学习,提高业务水平,在江门范围内积极与相关税务、评估事务所合作,拓宽业务范围,规范业务水平。第一天去实习,我有些不知所措。因为我是江西人,而其他人都是在这生活了几十年的元老,听着他们说着自己只能听懂一点点的粤语,突然感觉与他们之间的距离好像相差很大,顿时都不晓得自己的手应该放在哪里,坐在开着冷气的办公室里,看到别人进进出出,忙碌的样子,我只能待在一边,一点也插不上手,只能干巴巴地看着,好像什么都做不了,什么都不能做似的,心想我什么时候才能够融入进去呢。虽然知道实习生应该积极找工作干,要眼力有活,可是大家似乎并没有把我当作一个迫切需要学习的实习生看待,每个人都在忙着自己的工作。担心自己太活泼会打扰到前辈们的工作,这样的处境让我有些尴尬,只好呆呆的坐在一边,由于经验少,我在这方面还有欠缺。现在才明白,在校做一名学生,是多么好的事情啊!不过仔细想想自己是早晚要工作的,早晚要步入社会的,早晚要面对这些避免不了的事,刚开始,就应该踏踏实实的干好自己的工作,毕竟又没有工作经验,现在有机会了就要从各方面锻炼自己,不然,想念以后干什么都会干不好的。所以,现在我很珍惜学习的机会,多学一点总比没有学的好,花同样的时间,还不如多学,对以后择业会有很大的帮助。因为对事务所的工作也不是很了解,不知道自己要做什么该做什么能做什么,偶尔办公室里很安静,这让我感到有些压抑,虽然看他们的档案很乱但是也不敢随便整理,怕整理万一不好反而给他们带来麻烦,第二天的时候他们装订档案就顺便教我,慢慢的学会了这些能做些事情也就不那么压抑,能帮忙整理档案,整理底稿。由于专业知识知道的少,对企业账目也不了解,所以只能从别人送来的账中学着摸索想别人的凭证账簿是怎么做出来的,为什么那么做,就这样对专业知识巩固的同时对实际单位的账也有所了解。我是下学期升大三的学生,没有接触过审计,不知道真正的审计是一个什么样子,事务所的审计工作,看起来让人有一种肃然起敬的感觉,很端庄,很神圣。实习的这些天,因为我对审计工作没有什么认识,所以我没有参加任何项目,第一个主要就是学习了他们以前审计时留下的工作底稿。在学习审计工作底稿的过程中,我了解到每张工作底稿必须同时包括以下基本内容:被审计单位名称;审计项目名称;审计项目时间或期间;审计过程记录;审计结论;审计标识及其说明;索引号及页次;编制者姓名及编制日期;复核者姓名及复核日期;其他应说明事项。审计工作底稿一般分为综合类工作底稿、业务类工作底稿和备查类工作底稿。综合类工作底稿指注册会计师在审计计划阶段和审计报告阶段,为规划、控制和总结整个审计工作并发表审计意见所形成的审计工作底稿。它主要包括:审计业务约定书、审计计划、审计总结、未审会计报表、试算平衡表、审计差异调整汇总表、审计报告、管理建议书、被审计单位管理当局声明书以及注册会计师对整个审计工作进行组织管理的所有记录和资料。业务类工作底稿指注册会计师在审计实施阶段为执行具体审计程序所形成的审计工作底稿。它包括:符合性测试中形成的内部控制问题调查表和流程图、实质性测试中形成的项目明细表、资产盘点表或调节表、询证函、分析性测试表、计价测试记录、截止测试记录等等。备查类底稿指注册会计师在审计过程中形成的、对审计工作仅具有备查作用的审计工作底稿。主要包括:被审计单位的设立批准证书、营业执照、合营合同、协议、章程、组织机构及管理人员结构图、董事会会议纪要、重要经济合同、相关内部控制制度、验资报告的复印件或摘录。备查类审计工作底稿随被审计单位有关情况的变化而不断更新,应详细列明目录清单,并将更新的文件资料随时归档。通常,备查类审计工作底稿是由被审计单位或第三者根据实际情况提供或代为编制,因此,注册会计师应认真审核,并对所取得的有关文件、资料标明其具体来源。我没有跟着老师们去做项目,但是帮忙整理档案的时候我能感受到这其中的复杂性,偶尔也能听那些跟项目的前辈们提起,他们一般查账验证,审核财务报表都是要耗费很长的时间,也是很好精力,会计的谨慎性原则在这个时候得到了充分的体现,审计工作底稿,首先是要有一个关于底稿中的符号说明,还有索引号之类的。接着就是要有审计业务约定书、管理层声明书、审计后出具的报告以及审计过后的财务报表。关于被审计单位的营业执照、纳税登记表、基本情况说明一类的也应该整理于审计工作底稿中。如果被审计单位属于特殊行业,还应该提供相关的文件。最后就是实施审计程序的过程中所产生的一些工作底稿、各会计科目审定表和一些凭证抽查记录,例如银行存款调节表,应收账款的审定,预付账款的审定等,都要求有相关凭证来证明。实施了盘点程序的,还要有相应的盘点表,例如存货类材料及产成品应对企业实际库存进行盘点,出具相关证明,尤其企业固定资产的实际存在性。这是一项很繁杂的工作,那个教我的邱会计说,会计师事务所的外审的一件很复杂的工作,这对一个人的观察力与记忆力有很强的要求,你必须对你看过的东西有印象,等到后面有跟这个有关联的数据出现的时候,你还能记得住,这样才能够练就火眼金睛,不放过任何一个角落。在审计的过程中也会遇到一些计算,比如利息,税率等。这些我们要根据企业提供的银行原始凭证进行复算,再对照企业做的帐。检查企业是否按照实际的利率计提利息。很多事情看似简单,但是老师告诉我要是一旦上手有时就挺复杂的,或许这就是实践与理论的差别。这次的实践,我能够很深的体会到实践与理论既有联系又有区别。理论是实践的基础,我们书本上的知识都是我们实践的基础,有许多知识不是一目了然的。需要我们掌握非常熟练后加以应用。但是书本上的内容是实践的基础,只有书本上的内容学扎实了,才能在实践中如鱼得水,实践重要,在学校学习的内容同样重要。平时在办公室工作,原来以为办公室也没什么事要做,但是其实远不是我们想的那样,像日常的复印、传真、打孔、装订、盖章,这些看上去简单,但能做到快捷保质完成也不是随便的事,在这方面也能够使我们的到锻炼,学会做事细心谨慎,不拖拖拉拉。这次实习,我在前辈身上看见了作为一个会计人员良好的专业素质、职业操守、敬业态度以及严谨的工作态度,以前我一直以为作为一个会计专业的学生,人际交往能力不是那么重要,但是经过这次的实习,我发现作为一名会计人员也要具备良好的人际交往能力。会计部门是企业管理的核心部门,对下要收集会计信息,对上要汇报会计信息,对内要相互配合整理会计信息,对外要与社会公众和政府部门搞好关系。如果关系搞不好,对于收集资料是一件很麻烦的事情。这一次的实践虽然时间短暂,接触到的工作很浅,但是依然让我学到了许多知识和经验,这些都是书本上无法得来的。当一个注册会计师一直是我的理想,虽然我现在的能力离这个理想还是很遥远,但是通过实践,我更好的了解自己的不足,了解会计工作的本质,了解这个社会的方方面面,能够让我更早的为自己做好职业规划,设定人生目标,向成功迈进一大步。报告人数字图像处理实习报告实习项目名称:OCR-车牌号码识别所属课程名称:数字图像处理班 级:信息学号:姓名:指导教师:目录TOC\o"1-3"\h\u15009一、实习目的 317501二、实习原理 311854三、实习步骤 4247633.1完成车牌定位的整个过程 4101513.2水平差分提取图象边缘 4275143.3完成图象车牌区域的初步定位。 4319183.4利用先验知识标识车牌区域,进行车牌区域的选择 4327033.5水平查找后,纵向查找。完成图象车牌区域的初步定位。 5113773.6利用先验知识标识车牌区域,进行车牌区域的选择,(横纵向) 5140403.7计算伪车牌区的跳变平均数 539993.8找出所有伪车牌区域中具有最大跳变平均数的区域号,精确定位车牌 5248363.91找出车牌的左右边缘 6201223.92二值化图象 6168223.93车牌字符分割 6207953.94水平方向投影,分割出字符 621196四、实验程序 615787五、实习结果 2428296六、实习心得 28一、实习目的(1)掌握数字图像处理的相关知识及算法。(2)学习在VC6.0环境下编写车牌定位与识别程序。(3)了解车牌定位方法,如边缘检测法,基于矢量量化的车牌定位法等。(4)了解车牌字符分割方法,如,投影法,基于车牌字符先验知识的字符分割方法等。(5)了解车牌字符识别方法,如字符归一化,投影法,基于数字和字母特征的模板匹配法。(6)运用编写的车牌定位与识别程序实现在各种环境下车牌的识别。二、实习原理基于VC++图像处理的汽车牌照识别系统主要包括车牌定位,字符车牌分割和车牌字符识别三个关键环节其识别流程图如图1所示。原始图像原始图像图像预处理车牌定位二值化均衡化字符分割字符识别图1识别流程图其中,原始图像:原始的汽车图像;图像预处理:对采集到的图像进行滤波等处理以克服图像干扰;车牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;字符分割:利用投影检测的字符定位分割方法得到车牌的字符;字符数据库:为第6步的字符识别建立字符模板数据库;字符识别:通过基于模板匹配的人工神经网络算法,通过特征对比或训练识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。三、实习步骤请打开一个BMP格式的位图文件:标示图象的坐标标示算子的坐标标识区域的地点3.1完成车牌定位的整个过程程序流程:1.产生副本2.水平差分提取边缘,寻找横向的车牌带状区域3.垂直差分提取边缘,寻找纵向的车牌带状区域4.利用先验知识标识车牌区域,进行车牌带状区域的选择,(横纵向)5.构造出车牌矩形域;6.再次利用利用跳变数选择车牌矩形区域,进行车牌区域的最终选择;7.精确定位车牌,即削弱车牌横向宽度;8.更新图象;3.2水平差分提取图象边缘程序流程:1.逐行扫描,sub=|f(x,y)-f(x,y+1)|;2.若差值小于20,则g(x,y)=0;若差值大于30,则增强原图象,令g(x,y)=g(x,y)+30;3.另最后一列全部为0,即黑色;3.3完成图象车牌区域的初步定位。程序流程:1.利用间行扫描的方式找出跳变数最大的前10行;2.对Top10行进行区域细粒度增长选择;其相似度的选取为:0.7~1.3倍的该行跳变总数;3.二值化,threshold=255;4.任意选择一列,最好不要边缘列,可能有干扰(本程序选择为第十列),搜索出各个带状候选域,存入标志;3.4利用先验知识标识车牌区域,进行车牌区域的选择函数说明:特定应用条件,拍摄所得车牌的区域高度、宽度均有一定的范围,其大小可以分析图象后可得根据统计得到:车牌的顶部极少出现在高度小于100个像素的区域;车牌高度也一般大于20个像素。程序的最终结果为满足条件的经过扩展了的带状区域程序流程:1.舍弃区域顶部小于100的待选域2.选择区域高度大于20的待选域3.区域扩展,上下各增大5个像素。若顶部小于5,则顶部坐标不变,高度加5;若底部大于图象的底部,则底部坐标不变,高度加5;3.5水平查找后,纵向查找。完成图象车牌区域的初步定位。程序流程:1.利用间行扫描的方式找出跳变数最大的前30行;2.对Top30行进行区域增长;其相似度的选取为:0.8~1.2倍的该行跳变总数;3.二值化,threshold=255;4.任意选择一列,(本程序选择为第十行),搜索出各个带状候选域,存入标志;3.6利用先验知识标识车牌区域,进行车牌区域的选择,(横纵向)函数说明:国家标准:车牌的宽高比近似为3:1;程序流程:1.初始化存储数组2.选择区域高宽比大于3的待选域函数功能:再次利用利用跳变数选择车牌区域,进行车牌区域的最终选择,(横纵向)程序流程:1.初始化存储数组2.计算每个伪车牌区域的跳变数3.选择具有最大跳变数的区域为车牌区3.7计算伪车牌区的跳变平均数程序流程:1.初始化;2.水平差分,边缘提取;3.选择车牌的中间1/3行来计算每个伪车牌区域的跳变平均数;3.8找出所有伪车牌区域中具有最大跳变平均数的区域号,精确定位车牌程序说明:选择排序,由于水平分割出的伪车牌区域已经比较准确,故仅作垂直方向的进一步定位(缩小宽度)3.91找出车牌的左右边缘程序流程:1.水平差分,二值化;2.垂直方向投影,统计各列的投影值;3.去除噪声点;4.找出左右边缘5.计算车牌宽度6.车牌精确定位赋值3.92二值化图象程序说明:threshold=average+delt;程序流程:1.计算图象均值;2.计算图象方差;3.二值化3.93车牌字符分割程序流程:1.区域扩展;2.投影分割;3.字符区域的获取;3.94水平方向投影,分割出字符程序流程;1.统计各列白象素个数;2.平滑投影曲线;3.寻找波谷(trough)进行分割;四、实验程序3.1车牌识别///<summary>///函数功能:水平方向投影,分割出字符///程序流程:1.统计各列白象素个数;///2.平滑投影曲线;///3.寻找波谷(trough)进行分割;//二值化算法,二值化为0和1两种值voidCDipView::BinaryImg(BYTE*DisposeImg,intwidth,intheight){ BYTE*temp=newBYTE[height*width]; intx,y; CopyImg(DisposeImg,temp,width,height); longdoubletotal=0; floataver=0; for(x=0;x<height;x++) { for(y=0;y<width;y++) { total+=DisposeImg[x*width+y]; } } aver=(BYTE)(total/(float)(height*width)); floatdelt; floatsub=0; for(x=0;x<height;x++) { for(y=0;y<width;y++) { sub+=(DisposeImg[x*width+y]-aver)*(DisposeImg[x*width+y]-aver); } } delt=(float)(sqrt(sub/(float)(height*width))); BYTEjudge; judge=(BYTE)(delt+aver); for(x=0;x<height;x++) { for(y=0;y<width;y++) { if(DisposeImg[(x*width)+y]>=judge) { DisposeImg[(x*width)+y]=(BYTE)1; } else { DisposeImg[(x*width)+y]=(BYTE)0; } } } free(temp); }//Hilditch细化算法voidCDipView::ThinnerHilditch(void*image,unsignedlonglx,unsignedlongly){ char*f,*g; charn[10]; unsignedintcounter; shortk,shori,xx,nrn; unsignedlongi,j; longkk,kk11,kk12,kk**,kk21,kk22,kk23,kk31,kk32,kk33,size; size=(long)lx*(long)ly; g=(char*)malloc(size); if(g==NULL) { printf("errorinallocatingmemory!\n"); return; } f=(char*)image; for(i=0;i<lx;i++) { for(j=0;j<ly;j++) { kk=i*ly+j; if(f[kk]!=0) { f[kk]=1; g[kk]=f[kk]; } } } counter=1; do { printf("%4d*",counter); counter++; shori=0; for(i=0;i<lx;i++) { for(j=0;j<ly;j++) { kk=i*ly+j; if(f[kk]<0) f[kk]=0; g[kk]=f[kk]; } } for(i=1;i<lx-1;i++) { for(j=1;j<ly-1;j++) { kk=i*ly+j; if(f[kk]!=1) continue; kk11=(i-1)*ly+j-1; kk12=kk11+1; kk**=kk12+1; kk21=i*ly+j-1; kk22=kk21+1; kk23=kk22+1; kk31=(i+1)*ly+j-1; kk32=kk31+1; kk33=kk32+1; if((g[kk12]&&g[kk21]&&g[kk23]&&g[kk32])!=0) continue; nrn=g[kk11]+g[kk12]+g[kk**]+g[kk21]+g[kk23]+ g[kk31]+g[kk32]+g[kk33]; if(nrn<=1) { f[kk22]=2; continue; } n[4]=f[kk11]; n[3]=f[kk12]; n[2]=f[kk**]; n[5]=f[kk21]; n[1]=f[kk23]; n[6]=f[kk31]; n[7]=f[kk32]; n[8]=f[kk33]; n[9]=n[1]; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) xx++; } if(xx!=1) { f[kk22]=2; continue; } if(f[kk12]==-1) { f[kk12]=0; n[3]=0; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) xx++; } if(xx!=1) { f[kk12]=-1; continue; } f[kk12]=-1; n[3]=-1; } if(f[kk21]!=-1) { f[kk22]=-1; shori=1; continue; } f[kk21]=0; n[5]=0; xx=0; for(k=1;k<8;k=k+2) { if((!n[k])&&(n[k+1]||n[k+2])) { xx++; } } if(xx==1) { f[kk21]=-1; f[kk22]=-1; shori=1; } else f[kk21]=-1; } } }while(shori); free(g);}//细化算法voidCDipView::ThinImage(BYTE*image,intwidth,intheight){ LONGx,y,k; BYTEimage1[10000]; k=0; LONGdigitWidth=width; LONGdigitHeight=height; for(x=0;x<digitWidth;x++) { image[x*width+0]=(BYTE)0; image[x*width+digitHeight-1]=(BYTE)0; } for(y=0;y<digitHeight;y++) { image[0*width+y]=(BYTE)0; image[(digitWidth-1)*width+y]=(BYTE)0; } for(x=0;x<digitWidth;x++) { for(y=0;y<digitHeight;y++) { image1[k]=image[x*width+y]; if(image1[k]!=0) image1[k]=(BYTE)1; k++; } } ThinnerHilditch((void*)image1,digitWidth,digitHeight); k=0; for(x=0;x<digitWidth;x++) { for(y=0;y<digitHeight;y++) { image[x*width+y]=image1[k]; if(image[x*width+y]!=0) image[x*width+y]=(BYTE)1; k++; } }}//获取特征值的函数voidCDipView::GetFeature(BYTE*image,longwidth,longheight,double*feature,intsize){ inti,j; for(i=0;i<**;i++) feature[i]=0; //图象是20×36大小的,分成9块 //第一块 for(i=0;i<7;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[0]+=1.0; } } //第二块 for(i=0;i<7;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[1]+=1.0; } } //第三块 for(i=0;i<7;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[2]+=1.0; } } //第四块 for(i=7;i<**;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[3]+=1.0; } } //第五块 for(i=7;i<**;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[4]+=1.0; } } //第六块 for(i=7;i<**;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[5]+=1.0; } } //第七块 for(i=**;i<20;i++) { for(j=0;j<12;j++) { if(image[i*width+j]==1) feature[6]+=1.0; } } //第八块 for(i=**;i<20;i++) { for(j=12;j<24;j++) { if(image[i*width+j]==1) feature[7]+=1.0; } } //第九块 for(i=**;i<20;i++) { for(j=24;j<36;j++) { if(image[i*width+j]==1) feature[8]+=1.0; } } //下面统计方向交点特征 for(j=0;j<36;j++) { if(image[7*width+j]==1) feature[9]+=1.0; } for(j=0;j<36;j++) { if(image[***width+j]==1) feature[10]+=1.0; } for(i=0;i<20;i++) { if(image[i*width+12]==1) feature[11]+=1.0; } for(i=0;i<20;i++) { if(image[i*width+24]==1) feature[12]+=1.0; }}//识别函数,第一个参数为LoadCharLib读出的数组,//第二个参数为LoadCharLib的返回值(即样本个数),//将上面获得的特征值传入第三个参数,返回为识别结果CStringCDipView::Recognize(sample*sa,intnum,double*feature){ intj; doublemin=100000.0; CStringResult; for(inti=0;i<num;i++) { doublediff=0.0; for(j=0;j<9;j++) { diff+=fabs(feature[j]-sa[num].feature[j]); } for(j=9;j<**;j++) { diff+=fabs(feature[j]-sa[num].feature[j])*9; } if(diff<min) { min=diff; Result.Format("%s",sa[num].trueClass); } } returnResult; }*///字符识别/*voidCDipView::GetCharacter(){ //CDipDoc*pDoc=GetDocument(); //intwidth,height; //width=pDoc->ImgWidth; //height=pDoc->ImgHeight; //samplemysa[500];//doublemyfeature[**];//intnum;//CStringresult[10]; //BYTE*Img; //introw=0; //intcol=0; //intx=-1; //inty=-1; //intw=0; //inth=0; //intarea=0; //for(area=0;area<10;area++); //{ // if(cRects[area].w>0) // { // x=cRects[area].x; // y=cRects[area].y; // w=cRects[area].w; // h=cRects[area].h;//Img=newBYTE[w*h]; // for(row=0;row<h;row++) // { // for(col=0;col<w;col++) // {////Img[row*w+col]=pDoc->ImgData[y*width+x]; // } // } //// //num=LoadCharLib(mysa);//获取样本库保存到mysa[500]中 //// //Zoom(Img,w,h);//对切割出的图象进行大小归一化 //// //ThinImage(Img,w,h);//对大小归一化后的图象进行细化 //// //GetFeature(Img,w,h,myfeature,**); //图象细化以后就可以提取特征了 //// //result[area]=Recognize(mysa,num,myfeature); // } //} //delete[]mysa; //delete[]myfeature; //delete[]result;}*/voidCDipView::OnCharacterRecg(){ CMainFrame*MainFrame=(CMainFrame*)this->GetParent()->GetParent(); CCharView*pchview=(CCharView*)MainFrame->m_wndSplitter.GetPane(0,1); CDigitClassdigitTest; CStringclassResult; CStringtempstr; CStringstrInfo,strTemp; intrecgpos=1;doubletemp[**]; for(intk=0;k<CharacterNum;k++) { if((float)cDatas[k].h/cDatas[k].w>4) { if(recgpos!=1&&recgpos<8) { classResult=classResult+"1"; recgpos++; } continue; } for(intx=0;x<cDatas[k].h;x++) { for(inty=0;y<cDatas[k].w;y++) { digitTest.digitarray[y][x]=cDatas[k].Img[x*cDatas[k].w+y]; } } digitTest.digitHeight=cDatas[k].h; digitTest.digitWidth=cDatas[k].w; digitTest.FixSize(); digitTest.BinaryDigit(); //digitTest.MarrBinary(); digitTest.ThinDigit_1(); pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(""); CStringstrInfo,strTemp; strInfo.Format(""); inti,j; for(i=0;i<digitTest.digitHeight;i++) { for(j=0;j<digitTest.digitWidth;j++) { if(digitTest.digitarray[j][i]==1) strInfo+="■"; else strInfo+=""; } strInfo+="\r\n"; } pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(strInfo); // AfxMessageBox("hello"); digitTest.GetFeature(); if(recgpos==1) { doublemin=100000.0; POSITIONpos=hanList.GetHeadPosition(); while(pos!=NULL) { Samplesa; sa=hanList.GetNext(pos); doublediff=0.0; for(j=0;j<9;j++) { diff+=fabs(digitTest.feature[j]-sa.feature[j]); } for(j=9;j<**;j++) { diff+=fabs(digitTest.feature[j]-sa.feature[j])*9; } if(diff<min) { min=diff; tempstr.Format("%s",sa.trueClass); } } classResult=classResult+tempstr; } if(recgpos==2) { doubletemp[**]; doubleresult1[26]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_bp.Identify(temp,**,result1,26); for(i=0;i<26;i++) { if(ABS(result1[i]-1)<0.1) { tempstr.Format("%c",i+'A'); classResult=classResult+tempstr; t=1; } } if(t!=1) classResult=classResult+'?'; } // strTemp.Format("%d",classResult); if(recgpos==3) { doubletemp[**]; doubleresult1[36]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_num_bp.Identify(temp,**,result1,36); for(i=0;i<36;i++) { if(ABS(result1[i]-1)<0.2) { if(i<=9) { tempstr.Format("%c",i+'0'); classResult=classResult+tempstr; t=1; } else { tempstr.Format("%c",i+'A'-10); classResult=classResult+tempstr; t=1; } // tempstr.Format("%c",i); } } if(t!=1) classResult=classResult+'?'; } if(recgpos>3&&recgpos<8) { doubletemp[**]; doubleresult1[10]; boolt=0; for(i=0;i<**;i++) { temp[i]=digitTest.feature[i]/15; } char_num_bp.Identify(temp,**,result1,10); for(i=0;i<10;i++) { if(ABS(result1[i]-1)<0.1) { tempstr.Format("%c",i+'0'); classResult=classResult+tempstr; t=1; } } if(t!=1) classResult=classResult+'?'; } // strInfo+="\n\r识别结果为:"; // strInfo+=classResult; recgpos++; // pchview->m_result.SetSel(0,-1); //pchview->m_result.ReplaceSel(strInfo); }//Sampletemp;inta; strInfo+="\n\r验证结果为:";strInfo+=classResult; if(strcmp(classResult,"粤T2205"))strInfo+="错误"; elsestrInfo+="正确"; pchview->m_result.SetSel(0,-1); pchview->m_result.ReplaceSel(strInfo); }voidCDipView::OnTrainfromvehicle(){ OnLocate(); OnVSplit(); CMainFrame*MainFrame=(CMainFrame*)this->GetParent()->GetParent(); CCharView*pchview=(CCharView*)MainFrame->m_wndSplitter.GetPane(0,1); CDigitClassdigitTrain; CRecvChardlg; CStringm_class; for(intk=0;k<CharacterNum;k++) { for(intx=0;x<cDatas[k].h;x++) { for(inty=0;y<cDatas[k].w;y++) { digitTrain.digitarray[y][x]=cDatas[k].Img[x*cDatas[k].w+y]; } } digitTrain.digitHeight=cDatas[k].h; digitTrain.digitWidth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论