You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HALCON如何读取低分辨率ECC200数据码?现有参数无法识别求解决方案

解决方案

1. 优先做图像预处理

低质量ECC200码识别失败90%的原因是未做光照校正和对比度增强,你提供的待识别图存在明显光照不均问题,先执行以下预处理步骤:

* 校正光照不均,提升模块对比度
emphasize (Image, ImageEmphasize, 7, 7, 2)
* 平滑去除背景噪声
mean_image (ImageEmphasize, ImagePreprocessed, 3, 3)

如果对比度仍然偏低,可追加局部二值化处理:

* 局部二值化适配不均匀光照,提取码区候选域
local_threshold (ImagePreprocessed, CodeCandidateRegion, 'adapted_std_deviation', 3, 5)
reduce_domain (ImagePreprocessed, CodeCandidateRegion, ImageReduced)

待识别码原图:
待识别ECC200码

2. 修正2D码模型参数

你之前的参数遗漏了低质量码适配的核心配置,调整后的完整代码如下:

* 创建模型时新增极性自适应配置,适配低对比度、反色场景
create_data_code_2d_model ('Data Matrix ECC 200', ['default_parameters','small_modules_robustness','module_size_min','polarity'], ['maximum_recognition','high','1','any'], DataCodeHandleMaximum)
* 调整识别阈值,适配模糊、低对比度场景
set_data_code_2d_param (DataCodeHandleMaximum,['slant_max','timeout','contrast_min','module_gap_min'],[0.52,10000,5,0])
* 仅确认码固定为12行26列时保留下方参数,否则删除避免限制识别范围
set_data_code_2d_param (DataCodeHandleMaximum,['symbol_cols','symbol_rows'],[26,12])

* 用预处理后的图像执行识别
find_data_code_2d (ImageReduced, SymbolXLDs, DataCodeHandleMaximum, ['stop_after_result_num'], [200], ResultHandles, DecodedDataStrings)

3. 可选调试方法

如果仍识别失败,可调用get_data_code_2d_results算子查看搜索失败的具体原因,针对性调整参数:

get_data_code_2d_results (DataCodeHandleMaximum, 'all_candidates', 'result_type', SearchFailReason)

内容的提问来源于stack exchange,提问作者sharkyenergy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:15:05