Halcon一维码和二维码识别
一.Halcon一维码识别
1.一维码的识别过程:
(1).创建条码模型create_bar_code_model创建一个通用模型,用于读取所有支持类型的条码。
(2).设置参数set_bar_code_param设置条码搜索参数,当要设置多个参数时候需要用到。
(3).搜索条形码,并解码find_bar_code得出条码字符串。
(4).可以通过get_bar_code_result得到相关结果。
(5).清除条码模型clear_bar_code_model 清除内存,识别句柄将不能使用。
2.算子参数:
(1).create_bar_code_model( : : GenParamName, GenParamValue : BarCodeHandle)
Ⅰ.GenParamName (输入可以为条形码模型调整的通用参数的名称)
默认值: []
列表值: ‘barcode_height_min’, ‘barcode_width_max’, ‘barcode_width_min’, ‘check_char’, ‘composite_code’, ‘element_size_max’, ‘element_size_min’, ‘element_size_variable’, ‘meas_thresh’, ‘meas_thresh_abs’, ‘min_code_length’, ‘min_identical_scanlines’, ‘num_scanlines’, ‘orientation’, ‘orientation_tol’, ‘persistence’, ‘quiet_zone’, ‘start_stop_tolerance’, ‘stop_after_result_num’, ‘timeout’, ‘train’, ‘upce_encodation’
Ⅱ.GenParamValue (输入可以为条形码模型调整的通用参数的值)
默认值: []
建议值: 0, 0.1, 1, 1.5, 2, 8, 32, 45, ‘present’, ‘absent’, ‘none’, ‘CC-A/B’, ‘auto’, ‘high’, ‘low’, ‘true’, ‘false’
Ⅲ.BarCodeHandle (输出用于使用和访问条形码模型的句柄)(2).set_bar_code_param( : : BarCodeHandle, GenParamName, GenParamValue : )
Ⅰ.BarCodeHandle (输入条码模型的句柄)
Ⅱ.GenParamName (输入为查找和解码条形码而应调整的通用参数的名称)
默认值: ‘element_size_min’
列表值: ‘abort’, ‘barcode_height_min’, ‘barcode_width_max’, ‘barcode_width_min’, ‘check_char’, ‘composite_code’, ‘contrast_min’, ‘element_size_max’, ‘element_size_min’, ‘element_size_variable’, ‘majority_voting’, ‘meas_thresh’, ‘meas_thresh_abs’, ‘merge_scanlines’, ‘min_code_length’, ‘min_identical_scanlines’, ‘num_scanlines’, ‘orientation’, ‘orientation_tol’, ‘persistence’, ‘quality_isoiec15416_reflectance_reference’, ‘quiet_zone’, ‘small_elements_robustness’, ‘start_stop_tolerance’, ‘stop_after_result_num’, ‘timeout’, ‘train’, ‘upce_encodation’
Ⅲ.GenParamValue (输入为查找和解码条形码而调整的通用参数的值)
默认值: 8
建议值: 0, 0.1, 1, 1.5, 2, 8, 32, 45, ‘true’, ‘false’, ‘present’, ‘absent’, ‘none’, ‘CC-A/B’, ‘auto’, ‘high’, ‘low’, ‘ucc-12’, ‘zero-suppressed’(3).find_bar_code(Image : SymbolRegions : BarCodeHandle, CodeType : DecodedDataStrings)
Ⅰ.Image (输入单通道图像) 如果图像具有缩小的域,则条形码搜索将缩小到该域。这通常会减少操作员的运行时间。但是,如果条形码未完全在域内,则无法正确解码条形码。
Ⅱ.SymbolRegions (输出成功解码的条码符号的区域)
Ⅲ.BarCodeHandle (输入条码模型的句柄)
Ⅳ.CodeType (输入搜索条码的类型)在不知条码类型时候可以使用‘auto’可支持识别
列表值: ‘2/5 Industrial’, ‘2/5 Interleaved’, ‘Codabar’, ‘Code 128’, ‘Code 39’, ‘Code 93’, ‘EAN-13 Add-On 2’, ‘EAN-13 Add-On 5’, ‘EAN-13’, ‘EAN-8 Add-On 2’, ‘EAN-8 Add-On 5’, ‘EAN-8’, ‘GS1 DataBar Expanded Stacked’, ‘GS1 DataBar Expanded’, ‘GS1 DataBar Limited’, ‘GS1 DataBar Omnidir’, ‘GS1 DataBar Stacked Omnidir’, ‘GS1 DataBar Stacked’, ‘GS1 DataBar Truncated’, ‘GS1-128’, ‘MSI’, ‘PharmaCode’, ‘UPC-A Add-On 2’, ‘UPC-A Add-On 5’, ‘UPC-A’, ‘UPC-E Add-On 2’, ‘UPC-E Add-On 5’, ‘UPC-E’, ‘auto’
Ⅴ.DecodedDataStrings (输出所有成功解码的条码的数据串)(4).Cget_bar_code_result( : : BarCodeHandle, CandidateHandle, ResultName : BarCodeResults)
Ⅰ.BarCodeHandle (输入条码模型的句柄)
Ⅱ.CandidateHandle 输入分别指示需要数据的条码结果候选)一般为all
Ⅲ.ResultName (输入要返回的结果数据的名称)
Ⅳ.BarCodeResults (输出最终结果)(5).clear_bar_code_model( : : BarCodeHandle : )
Ⅰ.BarCodeHandle (输入条码模型的句柄)
实例:
read_image (Image, 'barcode/ean13/ean1305')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
dev_set_color ('green')
dev_set_draw ('margin')
dev_set_line_width (3)
set_display_font (WindowHandle