根据算法规则进行匹配相似车辆
标签:算法 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
评论