运行EasyPR出现“_pFirstBlock == pHead”错误的解决方法

本文详细介绍了如何在特定环境下配置并运行EasyPR项目,包括使用VS2013、Win7 64位系统、OpenCV3.1等,并解决因版本不一致导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,介绍一下我的开发环境:

(1)EasyPR,使用最新的版本:https://codeload.github.com/liuruoze/EasyPR/zip/master

(2)VS2013(VS2012对C++ 11的支持不好)

(3)Win7 64位

(4)OpenCV 3.1(之前是3.0,报错后改为3.1)


其次,说明一下环境配置:

在Usage.md文件中有对开发环境的介绍,包括C++包含目录、附加库目录、附加依赖项等。

需要说明的是,一是在config.h头文件中要讲OPENCV的版本宏修改为对应的版本,即

#define CV_VERSION_THREE_ZERO
修改为

#define CV_VERSION_THREE_ONE
二是第三方库目录thirdparty没有被添加进包含目录,要么将其拷贝进include文件夹,要么将thirdparty所在目录包含进来。


最后,是对“_pFirstBlock == pHead”错误的分析,网上说是将运行库设置为/MDd,其实在这个环境中,是由于EasyPR使用的OpenCV版本(例如,目前最新EasyPR版本推荐OpenCV3.1.0,并且使用64位编译环境)和开发者的版本不一致导致的,将所有开发环境设置为苛刻的条件:EasyPR最新版 + OpenCV3.1.0(查看Usage.md文件中“安装OpenCV”一节涉及的版本)+ VS2013(详见Usage.md中对VS版本的要求)+ 64位开发环境(OpenCV3.1解压后只有x64环境),然后编译、运行,就不会在demo=>批量测试(推荐)=》general_test 操作的时候出现断言问题了。

importSubroutine("GUIUtils") importSubroutine("SUB_FAC_Comm") importSubroutine("SUB_UTL_DB") DLG_EDIT_FORM_NAME = "qm_dlg_UnitHoldSon" DLG_EDIT_UNIT_SUPER_HOLD = "qm_dlg_UnitSuperHoldSon" //表格对应的顺序 GRID_NAMEPLATE_UNIT_ID = 2 GRID_NAMEPLATE_ORDER_NUMBER = 3 GRID_NAMEPLATE_OPERATION_NO = 4 GRID_NAMEPLATE_ROUTE_NUMBER = 5 GRID_NAMEPLATE_DCP_NUMBER = 6 intCheck = vector() searchEnter = vector() //初始化界面 function frmInitForm() { // UI 初始化 initUI() edit_box_no.clear() edit_part_no.clear() // edit_operation_no.clear() // edit_route_no.clear() edit_work_order.clear() editPower.clear() // edit_electricity.clear() // edit_power.clear() intCheck.clear() searchEnter.clear() buttonHold.setEnabled(false) //buttonSuperHold.setEnabled(false) lines = getByLines() setComboboxItems(comboboxLine, lines) electricity = getByDianLiu() setComboboxItems(comboboxDianLiu, electricity) dateTimePickerStart.setValue(null) //创建日期结束 dateTimePickerEnd.setValue(null) glbInitGrid(gridSearchResult) glbReSizeGridColumnsToFit(gridSearchResult, GRID_COL_WIDTH) } //查询 function searchHandle() { editMessage.setText("") vectorSupplierInfo = vector() params = vector() sql = " SELECT T.SERIAL_NUMBER, PHEAD.BOX_ID_S, W.ORDER_NUMBER, pl.DESCRIPTION, U.AI_FQC_IMG_S, U.IV_IMG_S, PHEAD.packing_time_t, def.CAUSESOFDEFECTS, U.POWER_CLASS_S, U.ELECTRICITY_CLASS_S FROM UNIT T LEFT JOIN AT_PM_PALLET_INFO PALLET ON T.UNIT_KEY = PALLET.UNIT_47 LEFT JOIN AT_PM_PALLET_HEAD PHEAD ON PHEAD.vpallet_id_i = PALLET.vpallet_id_i LEFT JOIN WORK_ORDER W ON PHEAD.ORDER_54 = W.ORDER_KEY LEFT JOIN UDA_ORDER UO ON W.ORDER_KEY = UO.OBJECT_KEY LEFT JOIN PRODUCTION_LINE pl ON pl.p_line_key = UO.PRODUCTION_LINE_23 LEFT JOIN UDA_UNIT U ON T.UNIT_KEY = U.OBJECT_KEY LEFT JOIN ( SELECT UNIT_47, LISTAGG ( '不良位置:' || def.LOCATION_S || ' 不良原因:' || def.DEFECT_DESC_S, '|' ) WITHIN GROUP ( ORDER BY def.UNIT_47
03-14
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值