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

Posted warmsunshine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据算法规则进行匹配相似车辆相关的知识,希望对你有一定的参考价值。

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

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

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

                }


            }
            return inparkSimilarlist;
        }
        /// <summary>
        /// 根据获取的车牌号和传递的在线车牌号进行相似度比对
        /// </summary>
        /// <param name=""></param>
        /// <param name=""></param>
        /// <returns></returns>
        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 < plateNO.Length; i++)
                {
                    //str[i]代表串中的字符是否相似  
                    //用循环出来车牌长度和传递过来车牌的字符串进行比对  累计计算相似的长度数
                    if (plateNO[i] == strPlateCode[i])
                    {
                        nRet++;
                    }
                }
              }
            while (false);
            
            // 循环出来的车牌长度-相似长度=误差识别度
            return plateNO.Length - nRet;
        }

 

以上是关于根据算法规则进行匹配相似车辆的主要内容,如果未能解决你的问题,请参考以下文章

VRP问题基于matlab遗传算法结合贪婪规则求解多级仓储车辆运输问题含Matlab源码 2352期

求助,如何对两幅二值图像进行相似度匹配

跟踪算法-Deep sort详细简介

如何使用 WordNet 路径算法计算两个字符串中单词的语义相似度

求一个基于java的模糊匹配算法

考试答案匹配算法