刚刚接触车牌识别,希望能通过一个完整的程序理解车牌识别的具体实现流程。
借助于java基础,只能选择EasyPR的java版本作为研究对象。希望通过此篇记录下我的问题与学习经验,也希望与所有学习的小伙伴们共同讨论其中的问题。
EasyPR的学习博客:https://blog.csdn.net/liuuze5/article/details/46290455
EasyPR-java的博客及源码:https://blog.csdn.net/lgcjava/article/details/52319146
配置环境:jdk1.8 openCV2.4.11 maven工程 JUnit 4(不知道是否必须,还不太懂JUnit的应用)
附上原图:
(1)第一次尝试调用EasyPrTest.java,但不知道具体如何调用那么多方法。失败。
(2)第二次尝试调用GeneralTest.java,还好,这个只需要调用一个方法,成功运行。
但是会报如下错误:
网上查询,应该是内存溢出的问题。有时候检测到第11张照片后出错,现在第5张照片就会出错。解决方法还没找到,有没有知道解决方法的小伙伴,欢迎留言告知,多谢。
二、学习源码(分析GeneralTest测试的debug)
1、Mat src = imread(file.getPath());
// Mat (openCV提供的类,用于存储图像)
附地址:http://lib.csdn.net/article/opencv/42000
2、 PlateDetect plateDetect = new PlateDetect();
plateDetect.setPDLifemode(true);
//调用PlatDetect(车牌检测)中的setPDLifemode()方法
2.1 setPDLifemode()方法
看到注释:生活模式\工业模式。当前设置为生活模式。(此处的生活模式应该是日常人为照相采集图片,车牌照射角度较小。个人猜测)
2.1.1 setLifemode()方法
设置各项参数。详细参数还不懂,暂时搁置。
3 Vector<Mat> matVector =