一维码读取
create_bar_code_model 创建条码读取器的模板
set_bar_code_param 配置解码方式
find_bar_code 读取条码
clear_bar_code_model 清除条码匹配模板
* 1.创建条码读取器的模板
* 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空
* 参数二:针对条形码模型进行调整
* 参数三:条形码模型的句柄。
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('green')
dev_set_draw ('margin')
* 2.配置解码方式
* 参数一:条形码模型的句柄。
* 参数二:通用参数的名称,针对查找和解码条形码进行了调整
* 参数三:通用参数的值
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)
read_image (Image, 'D:/Halcon/条码读取/ean1302.png')
* 用于将显示窗口的大小调整到适合图像大小的尺寸。
dev_resize_window_fit_image (Image, 0, 0, -1, -1)
* 3.在图像中读取条码数据和数据区域
* 参数一:要查找的图片
* 参数二:条码数据区域
* 参数三:条码模板句柄
* 参数四:条码类型
* 参数五:读取结果
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'EAN-13', DecodedDataStrings)
dev_display (Image)
dev_display (SymbolRegions)
disp_message (WindowHandle, DecodedDataStrings, 'image', 12, 12, 'black', 'true')
* 4.使用完毕,删除条码匹配模板
clear_bar_code_model (BarCodeHandle)
结果展示
2、二维码读取
create_data_code_2d_model 创建二维码模型
find_data_code_2d 读取二维码
dev_clear_window ()
read_image (Image, 'D:/Halcon/hellohalcon.png')
* 转为灰度图
rgb1_to_gray (Image, GrayImage)
dev_open_window_fit_image (GrayImage, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('red')
dev_display (GrayImage)
* 创建二维码模型
* 参数一:二维码类型
* 参数二:通用参数的名称 针对二维数据代码模型进行了调整。
* 参数三:针对二维数据代码模型进行了调整。
* 参数四:数据代码模型的句柄。
create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
* 查找图形中二维码,并获取信息
* 参数一:图片
* 参数二:围绕成功解码数据的 XLD 轮廓 代码符号。
* 参数三:二维码模型的句柄。
* 参数四:参数的名称 控制操作员的行为。
* 参数五:可选泛型参数的值。
* 参数六:所有成功解码的二维数据代码的句柄 符号。
* 参数七:所有检测到的二维数据代码的解码数据字符串 图像中的符号。
find_data_code_2d (GrayImage, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
dev_display (GrayImage)
dev_display (SymbolXLDs)
disp_message (WindowHandle, '读取出来的二维码信息是:'+DecodedDataStrings, 'window', 12, 12, 'red', 'false')
clear_data_code_2d_model (DataCodeHandle)
结果展示
一维码文件夹读取案例
list_files ('D:/Halcon/条码读取/ean13', 'files', Files)
* 创建条码读取器的模板
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('green')
dev_set_draw ('margin')
* 配置解码方式
set_bar_code_param (BarCodeHandle, 'element_size_min', 1)
for Index:=0 to |Files|-1 by 1
read_image (Image, Files[Index])
* 读取条码数据
find_bar_code (Image, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')
stop ()
if(Index = 41)
Index := 0
endif
endfor