基于Halcon学习的一维码识别【二十一】gs1databar_omnidir.hdev

GS1数据库全方位条形码符号


总代码:

*创建条形码阅读器
*设置条形码的最小宽度像素为1.5
create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)

*初始化
dev_close_window ()
dev_open_window (0, 0, 360, 256, 'black', WindowHandle)
dev_set_draw ('margin')
dev_set_color ('green')
dev_set_line_width (3)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')

*读条形码
for I := 1 to 2 by 1
    *读取图片    
    read_image (Image, 'barcode/gs1databar_omnidir/gs1databar_omnidir_' + I$'.2d')
    *显示图片  
    dev_display (Image)
    *寻找条形码  
    find_bar_code (Image, SymbolRegions, BarCodeHandle, 'GS1 DataBar Omnidir', DecodedDataStrings)
    *访问区域的运行长度编码。
    get_region_runs (SymbolRegions, Row, ColumnBegin, ColumnEnd)
    dev_display (SymbolRegions)
    
    *显示信息
    disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')
    if (I < 2)
        disp_continue_message (WindowHandle, 'black', 'true')
        stop ()
    endif
endfor
* 
*释放条形码阅读器分配的内存
clear_bar_code_model (BarCodeHandle)

逐段分析:

*创建条形码阅读器
*设置条形码的最小宽度像素为1.5
create_bar_code_model ('element_size_min', 1.5, BarCodeHandle)

*初始化
dev_close_window ()
dev_open_window (0, 0, 360, 256, 'black', WindowHandle)
dev_set_draw ('margin')
dev_set_color ('green')
dev_set_line_width (3)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')
*读条形码
for I := 1 to 2 by 1
    *读取图片    
    read_image (Image, 'barcode/gs1databar_omnidir/gs1databar_omnidir_' + I$'.2d')

    *显示图片  
    dev_display (Image)

    *寻找条形码  
    find_bar_code (Image, SymbolRegions, BarCodeHandle, 'GS1 DataBar Omnidir', DecodedDataStrings)

    *访问区域的运行长度编码。
    get_region_runs (SymbolRegions, Row, ColumnBegin, ColumnEnd)
    dev_display (SymbolRegions)
    
    *显示信息
    disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'true')
    if (I < 2)
        disp_continue_message (WindowHandle, 'black', 'true')
        stop ()
    endif
endfor

*释放条形码阅读器分配的内存
clear_bar_code_model (BarCodeHandle)


get_region_runs-访问区域的运行长度编码

运算符get_region_runs以和弦元组的形式返回区域数据。和弦表示法是通过逐行检查一个区域,并使用升序行号(=从“顶部”到“底部”)来实现的。每行从左向右传递(列号升序);存储区域段(=和弦)的所有起点和终点。因此,一个区域可以用一系列和弦来描述,和弦由行号、起点和终点(列号)来定义。运算符get_region_runs以元组的形式返回和弦的三个分量。如果区域为空,则返回三个空元组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值