EasyPR简介
EasyPR 的目标是成为一个简单、高效、准确的非限制场景 (unconstrained situation) 下的车牌识别库。它基于openCV这个开源库。这意味着你可以获取全部源代码,并且移植到opencv支持的所有平台。
EasyPR函数使用
创建一个CPlateRecognize的对象pr:
CPlateRecognize pr;
设置pr的属性:
pr.setResultShow(false);//这句设置EasyPR是否打开结果展示窗口
pr.setDetectType(PR_DETECT_CMSER);//这句话设置EasyPR采用的车牌定位算法CMER代表文字定位方法,SOBEL和COLOR分别代表边缘和颜色定位方法。可以通过"|"符号结合。
pr.setLifemode(true);//这句话设置开启生活模式,这个属性在定位方法为SOBEL时可以发挥作用,能增大搜索范围,提高鲁棒性。
pr.setMaxPlates(n);//这句话设置EasyPR最多查找多少个车牌。当一副图中有大于n个车牌时,EasyPR最终只会输出可能性最高的n个。
pr对象的方法的使用:
vector<CPlate> plate;//创建一个向量存储多个CPlate,CPlate是一个车牌识别系统中的一个实体,它可能包含车牌号码、颜色、坐标等信息
Mat src = imread(filepath);//传入Mat图片
int result = pr.plateRecognize(src, plate);//第一个代表输入图像,第二个代表输出的车牌CPlate集合。
//当返回结果result为0时,代表识别成功,否则失败。
获取Cplate类的属性:
CPlate plate = plateVec.at(i);//plateVec.at(i) 表示从 plateVec 容器中获取索引为 i 的元素,将其赋值给 plate
Mat plateMat = plate.getPlateMat();//plateMat代表车牌图像,
RotatedRect rrect = plate.getPlatePos();//rrect代表车牌的可旋转矩形位置,
string license = plate.getPlateStr();//代表车牌字符串,例如"蓝牌:苏123456"
会继续学习更新。