车牌识别系统EasyPR的批量识别功能测试界面

       对于一个车牌识别系统,准确和快速应该是值得关注的。为了进一步学习车牌识别系统EasyPR,我在MFC可视化界面中添加了车牌批量识别和批量识别时显示以下数据的功能:识别结果,车牌检测时间,车牌颜色识别时间,字符识别时间。

      1. 可视化界面功能简介

      目前可视化界面功能可以选择单张车牌识别和车牌批量识别功能,单张车牌识别的界面参考车牌识别系统easyPR的MFC可视化界面,车牌批量识别界面如下图所示。

CMSER detect
       通过“Choose Folder”选择好待识别文件夹之后,按下”Start”按钮,程序将依次识别文件夹中的车牌,单张车牌的相关数据会依次显示在表格中。EasyPR作者给出的测试资源的所有图片均用其实际车牌来命名,在批量测试时在界面中显示出文件名和识别结果,这样可以比较直观的判断识别结果是否准确。如果读者自建测试图库,推荐按照EasyPR作者的方法对图库中的文件按照车牌来进行命名。

      在车牌批量识别界面中的各阶段执行时间的单位均为ms。具体测试时间与电脑配置有关。

      本文的相关源码已更新至博主的Github中,还请各位读者多多指教。

       2. MFC的CTabCtr使用方法记录

       当前MFC界面中,车牌单张识别界面和车牌批量识别界面是用CTabCtrl控件来实现切换的,在这里记录一下该控件的使用方法,以便后续查询。若有同学需要参考,可以对照相应功能与源码。

       2.1 假定目前在项目rc中已有三个对话框(可直接在项目rc右键新增对话框),对话框ID分别为TESTPR, TESTPR_BATCH, TESTPR_SINGLE,为这三个对话框分别添加类。

       2.2 设置ID为BATCH_DLG,SINGLE_DLG对话框的属性:

             外观–>Style–>Child

             外观–>Border–>none

       2.3 三个对话框中均需要包含OnPaint函数,若类创建时没有该函数,可以手动添加。

       2.4 在ID为TEST_PR的对话框中添加CTabCtrl控件,在头文件中添加指向该控件,指向TESTPR_BATCH,和TESTPR_SINGLE的指针,在oninitialDialog函数中对这些变量进行初始化。类处理文件生成时不一定有oninitialDialog函数,可以手动添加。函数添加完成后,在该函数中添加如下代码。

       3. MFC的CListCtrl使用方法记录

       3.1 在BatchDlg对话框中添加CListCtrl控件,在.h和.cpp中添加指向CListCtrl空间的全局变量。

       3.2 在BatchDlg.cpp中添加oninitialDialog函数,在函数中添加设置CListCtrl表头和表格风格的代码:

       3.3 在批量识别过程中,根据识别结果依次填充表格内容,此部分可以根据功能查阅相关源码。

       4. 依次获取文件夹中的图像文件

      批量识别功能实现时,用户选择待识别的文件夹,程序中会从该文件夹中读取图像文件,依次识别,处理代码如下:

       5. 函数执行时间测试

       测试函数执行时间用到了QueryPerformanceCounter和QueryPerformanceFrequency,以测试车牌检测的时间为例,使用方法如下:

       6. 参考资料

       Vc控件用法总结之List Control      

       MFC选择文件夹的对话框

       VS2010MFC批量读取文件夹中的图片,处理后批量存入另一个文件夹




发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub