Halcon的二维码解码步骤和解析:
作者:xh6300
出处:http://www.cnblogs.com/xh6300/
QR Code:
1.create_data_code_2d_model( : : SymbolType, GenParamName, GenParamValue : DataCodeHandle):创建二维码识别模型
SymbolType:二维码类型('Data Matrix ECC 200', 'QR Code', 'Micro QR Code', 'PDF417', 'Aztec Code')
2.set_data_code_2d_param( : : DataCodeHandle, GenParamName, GenParamValue : ):设置二维码模型的参数
GenParamName:('default_parameters':设置模型默认设置)
GenParamValue :对应GenParamName的值('standard_recognition':标准识别,'enhanced_recognition':增强识别,'maximum_recognition':最大值识别)
3.query_data_code_2d_params( : : DataCodeHandle, QueryName : GenParamName):获取解码时参数(如果没有设置,则返回默认值)
QueryName :返回参数名称,对应的值如下:
'get_model_params':用于查询二维码模型的参数
'get_result_params':用于查询符号搜索的字母数字结果的参数
'get_result_objects':用于访问搜索的图标对象的参数
4.find_data_code_2d(Image : SymbolXLDs : DataCodeHandle, GenParamName, GenParamValue : ResultHandles, DecodedDataStrings):检测和读取图像中的二维码数据编码符号或训练二维数据编码模型
参数GenParamName为空是表示直接找,找不到就返回,当设置为'train'时表示一面找一面调整模版参数
DecodedDataStrings:解码图像中所有检测到的二维数据编码符号的数据串
5.get_data_code_2d_results( : : DataCodeHandle, CandidateHandle, ResultNames : ResultValues):获取在搜索二维码期间积累的字母数字结果
CandidateHandle:二维码候选句柄,值如下:
'general':一般用于引用最后一个find_data_code_2d调用的结果,而不是引用特定的候选者
'all_results':在最后一次调用find_data_code_2d期间成功解码的所有符号
'all_candidates':最后一次调用find_data_code_2d期间研究的所有候选想(包括已经成功解码的符号)
'general'下的ResultNames值:
'result_num':成功解码符号的数量
'candidate_num':候选区数量
'pass_num':已完成的遍历数
'undecoded_num':被识别为符号蒂娜无法读取的候选项的数目
'search_level':查找到图像的发现的金字塔层级
'min_search_level':搜素符号的最低金字塔级别。金字塔级别的0对应于原始图像
'max_search_level':搜索符号的最高金字塔级别
'all_results'下的ResultNames值:
'model_type':二维码模型的类型
'module_height':模块的高度(以像素为单位)
'module_width':模块的宽度(以像素为单位)
'mirrored':指已成功解码的符号是否已镜像
'contrast':对符号对比度的估计。该值基于查找到的模型与背景之间的边缘梯度
'decoding_error':对于成功解码的符号,这是通过错误校正检测和纠正的错误数
'mask_pattern_ref':0<= 'mask_pattern_ref' <=7
'error_correction_level':包括错误纠正的程度
'polarity':符号的极性
'all_candidates'下的ResultNames值:
'status':只是解码会否成功或为何终止处理
6.get_data_code_2d_objects( : DataCodeObjects : DataCodeHandle, CandidateHandle, ObjectName : ):访问在搜索二维码期间创建的图标对象
ObjectName:要返回的图标对象的名称('candidate_xld':XLD轮廓)