车牌识别在现实生活当中非常普遍:高速公路、停车系统、电子警察,甚至出现在车载设备上。它的工作原理大致这样:使用摄像头充当“眼睛”,使用openCV与深度学习充当“大脑”。实时车牌识别工作步骤:摄像头抓拍—>openCV初步定位车牌位置—>二次确认车牌位置的左右上下边界—>车牌倾斜校正—>车牌字符切割—>车牌字符识别。其中,车牌检测是车牌识别的前提条件和重要基础。
安卓车牌识别:android端使用openCV如何实现车牌检测。
关于openCV的初始化,调用车牌识别JNI接口时,首先进行初始化,加载caffe训练模型相关文件:
plateRecognition = new PlateRecognition(this, mHandler);
//init plate recognizer
new Thread(new Runnable() {
@Override
public void run() {
plateRecognition.initRecognizer("pr");
}
}).start();
摄像头实时抓拍,回调每帧数据给车牌识别线程。需要注意的是,车牌识别中openCV操作对象是Mat,而不是Bitmap:
public Mat onCamera