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

读取类型代码为128的条形码


总代码:

*创建模型
create_bar_code_model ([], [], BarCodeHandle)
dev_close_window ()
dev_open_window (0, 0, 600, 600, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_color ('green')
dev_set_line_width (3)
for I := 1 to 3 by 1
    read_image (Image, 'barcode/code128/code128' + (I$'.2'))
    *调整图像窗口与图片一样大
    dev_resize_window_fit_image (Image, 0, 0, -1, -1)
    find_bar_code (Image, SymbolRegions, BarCodeHandle, 'Code 128', DecodedDataStrings)
    *返回基本的解码参考数据
    get_bar_code_result (BarCodeHandle, 0, 'decoded_reference', Reference)
    String := ''
    for J := 0 to strlen(DecodedDataStrings) - 1 by 1
        if (ord(DecodedDataStrings{J}) < 32)
            Char := '\\x' + ord(DecodedDataStrings{J})$'02x'
        else
            Char := DecodedDataStrings{J}
        endif
        String := String + Char
    endfor
    disp_message (WindowHandle, String, 'window', 12, 12, 'black', 'true')
    if (I < 3)
        disp_continue_message (WindowHandle, 'black', 'true')
        stop ()
    endif
endfor
* 清除模型
clear_bar_code_model (BarCodeHandle)

逐段分析:

*创建模型
create_bar_code_model ([], [], BarCodeHandle)

*关闭窗口
dev_close_window ()
dev_open_window (0, 0, 600, 600, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_color ('green')
dev_set_line_width (3)
for I := 1 to 3 by 1
    read_image (Image, 'barcode/code128/code128' + (I$'.2'))
    *调整图像窗口与图片一样大
    dev_resize_window_fit_image (Image, 0, 0, -1, -1)

    *返回基本的解码参考数据
    get_bar_code_result (BarCodeHandle, 0, 'decoded_reference', Reference)
    String := ''
    for J := 0 to strlen(DecodedDataStrings) - 1 by 1
        if (ord(DecodedDataStrings{J}) < 32)
            Char := '\\x' + ord(DecodedDataStrings{J})$'02x'
        else
            Char := DecodedDataStrings{J}
        endif
        String := String + Char
    endfor
    disp_message (WindowHandle, String, 'window', 12, 12, 'black', 'true')
    if (I < 3)
        disp_continue_message (WindowHandle, 'black', 'true')
        stop ()
    endif
endfor
* 清除模型
clear_bar_code_model (BarCodeHandle)


'decoded_reference':

返回基本的解码参考数据。它包括符号的所有原始字符,即数据字符、潜在的开始或停止字符以及检查字符(如果存在)。对于仅采用数字数据的代码,例如EAN/UPC代码、GS1数据库代码(GS1数据库扩展变体除外)或2/5代码,解码参考数据采用与解码字符串数据相同的值,包括检查字符。对于具有字母数字数据的代码,例如代码128或代码39,解码的参考数据是相应解码表的索引。对于GS1-128,参考值是解码数据的ASCII码(另见元组/字符串操作),其中特殊字符FNC1与值102一起出现。对于GS1 DataBar Expanded和GS1 DataBar Expanded Stacked,参考值是解码数据的ASCII码,其中特殊字符FNC1的值为29。此外,对于GS1 DataBar系列的所有代码,第一个参考值表示一个链接标志,如果设置了该标志,则其值为1,否则为0。由于解码引用是一个整数元组,因此只能对单个结果调用它,这意味着CandidateHandle必须是相应解码符号的句柄号。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值