欢迎来到天天文库
浏览记录
ID:14281869
大小:63.00 KB
页数:19页
时间:2018-07-27
《车牌识别字符识别源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、车牌识别字符识别源代码车牌识别字符识别源代码部分代码如下:boolCImageLocation::LocateMark(LPBYTElpbyBits32,intx,inty,intnWidth,intnHeight,intnScanWidth,intnScanHeight,LPRECTp_markRect){//该函数处理的是32位图,lpbyBits32是指向32位图图像数据的指针//第一步,进行参数合法性检测ASSERT(lpbyBits32);if((x>(nScanWidth-1))
2、
3、(y>(nScanHeight-1)))returnFAL
4、SE;//循环变量longi,j;//像素值BYTEpixel;//图像数据索引BYTE*lpSrc;//图像每行的字节数longOneLineBytes=(long)nWidth*4;//开始数据基索引DWORDdwBaseIndex=y*OneLineBytes+4*x;//有效区域的宽度和高度intw=min(nWidth,nScanWidth-x);inth=min(nHeight,nScanHeight-y);if(w*h==0)returnFALSE;//调试功能/*intsum=0;floatave=0;//每个跳变点的位置,二维数组大小
5、与图像对应intpos[82][884];//每行跳变点的数量intjump_col[250];for(i=0;i6、pSrc++;}dwBaseIndex+=OneLineBytes;}ave=(float)sum/(float)nHeight;*///每行允许的最大跳变点间距(以车牌宽度为参考,略大)//constintt=250;constintlmax=250;//每行允许的最小跳变点间距(以车牌宽度为参考,略大)//constintxt=120;constintlmin=120;//每行起始点和终止点之间允许的最小跳变点数//(应设为车牌区域每行左端到右端的跳变点数的平均数,有待探索)constintm=13;//每行可能的起始点和终止点(假设图像高度不超过7、1000行,每行都有)intcol_s[1000],col_e[1000];//每行的起始点和终止点之间的跳变点数intr[1000];//找到每行起始点的标志符boolFirstColFlag;//当前点到起始点的距离intl;//当前点到起始点的距离超过多少时开始比较比值constintl_max=100;//当前点到起始点的距离与跳变点数量的比值floatlr_proportion;//当前点到起始点的距离与跳变点数量的比值的范围constfloatlr_p_min=(float)3.9;constfloatlr_p_max=(float)13.8、0;//连续黑点的数目,实际上是相邻两个跳变点的距离intblack=0;//连续黑点的最大数目,即相邻两个跳变点之间的最大距离constintblack_max=50;dwBaseIndex=0;//第一次全图扫描的输出是每行可能的起始点和终止点,以及起始点和终止点之间的跳变点数量//是从纵向来确定车牌区域可能处于的列范围,并为下一步车牌区域行范围的确定提供依据//每行for(i=0;i9、i]=0;//每列for(j=0;jblack_max)if(col_e[i]10、-col_s[i]>lmin){break;//换行}else{FirstColFlag=fa
6、pSrc++;}dwBaseIndex+=OneLineBytes;}ave=(float)sum/(float)nHeight;*///每行允许的最大跳变点间距(以车牌宽度为参考,略大)//constintt=250;constintlmax=250;//每行允许的最小跳变点间距(以车牌宽度为参考,略大)//constintxt=120;constintlmin=120;//每行起始点和终止点之间允许的最小跳变点数//(应设为车牌区域每行左端到右端的跳变点数的平均数,有待探索)constintm=13;//每行可能的起始点和终止点(假设图像高度不超过
7、1000行,每行都有)intcol_s[1000],col_e[1000];//每行的起始点和终止点之间的跳变点数intr[1000];//找到每行起始点的标志符boolFirstColFlag;//当前点到起始点的距离intl;//当前点到起始点的距离超过多少时开始比较比值constintl_max=100;//当前点到起始点的距离与跳变点数量的比值floatlr_proportion;//当前点到起始点的距离与跳变点数量的比值的范围constfloatlr_p_min=(float)3.9;constfloatlr_p_max=(float)13.
8、0;//连续黑点的数目,实际上是相邻两个跳变点的距离intblack=0;//连续黑点的最大数目,即相邻两个跳变点之间的最大距离constintblack_max=50;dwBaseIndex=0;//第一次全图扫描的输出是每行可能的起始点和终止点,以及起始点和终止点之间的跳变点数量//是从纵向来确定车牌区域可能处于的列范围,并为下一步车牌区域行范围的确定提供依据//每行for(i=0;i9、i]=0;//每列for(j=0;jblack_max)if(col_e[i]10、-col_s[i]>lmin){break;//换行}else{FirstColFlag=fa
9、i]=0;//每列for(j=0;jblack_max)if(col_e[i]
10、-col_s[i]>lmin){break;//换行}else{FirstColFlag=fa
此文档下载收益归作者所有