根据算法规则进行匹配相似车辆

2021-07-10 18:09

阅读:437

标签:算法   object   ++   字符   new   getc   误差   ctr   sql   

识别车牌的误差低于2位显示入场记录信息 高于2位不显示
识别规则 根据省份误差为1位+后面数字字母误差为1位
只要两者结合误差率为
也就是说省份错误为1位 + 后面任何1位错误 就显示 匹配相似信息

例如:豫A BCDE9  豫A BCDE8  粤A BCDE9  粤B BCDE9 新能源一个道理

 
//获取相关车辆信息
public static List GetCurrentParkingByCode(string  strPlateCode)
        {
           
            List inparkSimilarlist = new List();
            using (parkingContext  db= new parkingContext())
            {
               
                
                string sqlstr = "select * from InParking where Type=0 AND (PlateNO!=NULL OR PlateNO!=‘‘ ) order by InRecordId desc";
                ObjectResult objresult = db.ExecuteStoreQuery(sqlstr);
                if (objresult != null)
                {
                    var parklist = objresult.ToList();
                    //
                    //遍历数据循环取车牌信息进行对  传递的过来的车牌信息循环比对
                    for (int i = 0; i )
                    {
                        string plateNO = parklist[i].PlateCode;
                        //误差率为 
                        if (SimilarPlateNO(plateNO, strPlateCode) 2)
                        {
                            //满足条件的值保存到list集合中
                            inparkSimilarlist.Add(parklist[i]);
                        }
                    }

                }


            }
            return inparkSimilarlist;
        }
        /// 
        /// 根据获取的车牌号和传递的在线车牌号进行相似度比对
        /// 
        /// 
        /// 
        /// 
        public static int SimilarPlateNO(string plateNO ,string strPlateCode )
        {
            int nRet = 0;
            do {
                if (plateNO == null || strPlateCode == null)
                {
                    break;
                }

                if (plateNO .Length != strPlateCode .Length)
                {
                    break;
                }

                for (int i = 0; i )
                {
                    //str[i]代表串中的字符是否相似  
                    //用循环出来车牌长度和传递过来车牌的字符串进行比对  累计计算相似的长度数
                    if (plateNO[i] == strPlateCode[i])
                    {
                        nRet++;
                    }
                }
              }
            while (false);
            
            // 循环出来的车牌长度-相似长度=误差识别度
            return plateNO.Length - nRet;
        }

 

根据算法规则进行匹配相似车辆

标签:算法   object   ++   字符   new   getc   误差   ctr   sql   

原文地址:https://www.cnblogs.com/Warmsunshine/p/9552726.html


评论


亲,登录后才可以留言!