条形码识别
创建一个条形码识别模型,然后对15张EAN-13条形码图像进行识别,并将识别结果在窗口中显示出来。对于第14张图像,由于可能存在缺陷,启用了majority_voting参数以提高识别率
以下代码是使用HALCON软件的脚本语言编写的,HALCON是一款用于机器视觉的软件,广泛应用于工业自动化、质量控制、医学图像分析等领域。这段代码的主要功能是创建一个条形码识别模型,然后对一系列图像进行条形码识别,并在窗口中显示识别结果。
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 120, 300, ‘black’, WindowHandle)
set_display_font (WindowHandle, 16, ‘mono’, ‘true’, ‘false’)
dev_set_color (‘green’)
dev_set_draw (‘margin’)
dev_set_line_width (3)
set_bar_code_param (BarCodeHandle, ‘stop_after_result_num’, 1)
for I := 1 to 15 by 1
read_image (Image, ‘barcode/ean13/ean13’ + (I$‘.2’))
dev_resize_window_fit_image (Image, 0, 0, -1, -1)
if (I == 14)
* This image contains a defect object which could result in
* a false decode. Hence, the ‘majority_voting’ feature is used.
set_bar_code_param (BarCodeHandle, ‘majority_voting’, ‘true’)
endif
find_bar_code (Image, SymbolRegions, BarCodeHandle, ‘EAN-13’, DecodedDataStrings)
if (I == 14)
set_bar_code_param (BarCodeHandle, ‘majority_voting’, ‘false’)
endif
area_center (SymbolRegions, Area, Row, Column)
dev_display (Image)
dev_display (SymbolRegions)
disp_message (WindowHandle, DecodedDataStrings, ‘image’, Row - 30, Column - 90, ‘black’, ‘true’)
disp_continue_message (WindowHandle, ‘black’, ‘true’)
stop ()
endfor
clear_bar_code_model (BarCodeHandle)
下面是代码的逐行解释:
create_bar_code_model ([], [], BarCodeHandle):创建一个条形码模型,并将句柄存储在BarCodeHandle变量中。这个模型将用于后续的条形码识别。
dev_close_window ():关闭当前打开的窗口。
dev_open_window (, , 120, 300, ‘black’, WindowHandle):打开一个新的窗口,窗口大小为120x300像素,背景颜色为黑色,并将窗口句柄存储在WindowHandle变量中。
set_display_font (WindowHandle, 16, ‘mono’, ‘true’, ‘false’):设置窗口中显示的字体为16号大小的单线字体。
dev_set_color (‘green’):设置绘制颜色为绿色。
dev_set_draw (‘margin’):设置绘制模式为边缘。
dev_set_line_width (3):设置绘制线条的宽度为3。
set_bar_code_param (BarCodeHandle, ‘stop_after_result_num’, 1):设置条形码识别参数,这里指定在识别到一个条形码后停止识别。
for I := 1 to 15 by 1:开始一个循环,从1到15,每次增加1。
read_image (Image, ‘barcode/ean13/ean13’ + (I$‘.2’)):读取名为barcode/ean13/ean13的文件夹中,文件名以两位数字I结尾的图像。
dev_resize_window_fit_image (Image, , , -1, -1):调整窗口大小以适应图像。
if (I == 14) … endif:如果当前图像是第14张,启用majority_voting参数,以提高有缺陷条形码的识别率。
find_bar_code (Image, SymbolRegions, BarCodeHandle, ‘EAN-13’, DecodedDataStrings):使用创建的条形码模型BarCodeHandle在图像Image中查找EAN-13类型的条形码,并将识别结果存储在SymbolRegions和DecodedDataStrings中。
area_center (SymbolRegions, Area, Row, Column):计算识别到的条形码区域的中心位置。
dev_display (Image):在窗口中显示图像。
dev_display (SymbolRegions):在窗口中显示识别到的条形码区域。
disp_message (WindowHandle, DecodedDataStrings, …):在窗口中显示识别到的条形码数据。
disp_continue_message (WindowHandle, ‘black’, ‘true’):在窗口中继续显示消息。
stop ():暂停程序,等待用户操作。
clear_bar_code_model (BarCodeHandle):清除条形码模型。
整体来看,这段代码的功能是:创建一个条形码识别模型,然后对15张EAN-13条形码图像进行识别,并将识别结果在窗口中显示出来。对于第14张图像,由于可能存在缺陷,启用了majority_voting参数以提高识别率。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)