*本例展示了如何使用一维码参数’contrast_min’

  • Example program for the usage of the bar code parameter
  • ‘contrast_min’.
  • 通过设置这个参数,在低对比度的类条码结构中可以减少寻找一维码的时间
    *如果条码有较高的对比度时,也可以用来减少错误信息
  • This parameter can be used to reduce the runtime of find_bar_code
  • in the presence of a low contrast bar-like structures in an image.
  • Moreover ‘contrast_min’ can also be used to reduce the number of
  • false positives if the expected barcodes have high contrast.
  • 创建一维码读取句柄
  • Create bar code reader model
    create_bar_code_model ([], [], BarCodeHandle)
    *设置条码参数,元素最小尺寸
    set_bar_code_param (BarCodeHandle, ‘element_size_min’, 1.5)
  • 初始化
  • Initialization
    *关闭更新
    dev_update_off ()
    *关闭窗体
    dev_close_window ()
  • 读取和显示没有任何可见条码的样本图像
  • Read and display example images without any visible bar codes
    *读取图像
    read_image (Image, ‘barcode/25interleaved/25interleaved_zeiss1’)
  • 设置默认显示参数
  • Set display defaults
    *打开适合图像尺寸的窗体
    dev_open_window_fit_image (Image, 0, 0, 600, 500, WindowHandle)
    *显示图像
    dev_display (Image)
    *设置填充方式
    dev_set_draw (‘margin’)
    *设置显示字体
    set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)
    *获取窗体尺寸
    get_window_extents (WindowHandle, Row, Column, Width, Height)
    *打开窗体
    dev_open_window (0, Width + 5, 400, 300, ‘white’, WindowHandleText)
    *设置显示字体
    set_display_font (WindowHandleText, 14, ‘mono’, ‘true’, ‘false’)
  • 定义显示样本信息
  • Display information about the example
    Message[0] := ‘This example demonstrates the use of the bar code parameter ‘contrast_min’.’
    Message[1] := ’ ’
    Message[2] := ‘The parameter ‘contrast_min’ can be used to reduce the runtime of find_bar_code in the presence of low contrast bar-like structures in an image. Moreover ‘contrast_min’ can also be used to reduce the number of false positives in applications where the expected barcodes have a high contrast.’
    MessageWrapped := regexp_replace(Message + ’ ‘,[’(.{0,35})\s’,‘replace_all’],’$1\n’)
    disp_message (WindowHandleText, MessageWrapped, ‘window’, 12, 12, ‘black’, ‘false’)
    disp_continue_message (WindowHandle, ‘black’, ‘true’)
    stop ()
    dev_set_window (WindowHandle)
    *清除窗体
    dev_clear_window ()
    *显示图像
    dev_display (Image)
  • 定义循环次数
  • Number of repetitions for runtime measurements
    NumRepeat := 100
  • 第一步:设置条码候选区域的最小对比度为0
  • First, set the minimum contrast of the bar code candidate regions
  • to 0 (default)
    ContrastMinValue := 0
    *设置默认对比度为0
    set_bar_code_param (BarCodeHandle, ‘contrast_min’, ContrastMinValue)
  • 条吗读取器会找到多个条码值
  • The bar code reader finds many bar code candidate regions that have
  • a low absolute contrast
    Times := []
    *开始循环寻找条码值
    for I := 0 to NumRepeat by 1
    *开始计时
    count_seconds (Start)
    *寻找条码
    find_bar_code (Image, SymbolRegions, BarCodeHandle, ‘auto’, DecodedDataStrings)
    *计时结束
    count_seconds (End)
    Time := End - Start
    Times := [Times,Time]
    endfor
    RunTimeContrastMinLow := 1000 * median(Times)
    *获取疑似区域,显示结果
  • Get candidate regions and display results
    *获取疑似区域
    get_bar_code_object (BarCodeObjects, BarCodeHandle, ‘all’, ‘candidate_regions’)
    *获取数量
    count_obj (BarCodeObjects, Number)
    *设置显示颜色
    dev_set_color (‘red’)
    *设置线宽
    dev_set_line_width (5)
    *显示物体
    dev_display (BarCodeObjects)
    *聚焦窗体
    dev_set_window (WindowHandleText)
    *清除窗体
    dev_clear_window ()
    Message := [’‘contrast_min’ = ’ + ContrastMinValue + ‘:’,’ Found ’ + Number + ’ candidate(s) in ’ + (RunTimeContrastMinLow$’.4’) + ’ ms’]
    *显示信息
    disp_message (WindowHandleText, Message, ‘window’, 12, 12, ‘’, ‘false’)
  • 现在把对比度设置大一点,使区域的对比度至少比这个值要大才会被识别到
  • Now, set the bar code reader parameter ‘contrast_min’ to a value
  • greater than 0.0 to consider only candidates having an absolute
  • contrast of at least that value.
    *设置最小对比度为120
    ContrastMinValue := 120
    set_bar_code_param (BarCodeHandle, ‘contrast_min’, ContrastMinValue)
  • 再寻找条码,由于对比度设置大了一些,所以这次找到的数量会更少,消耗时间也会更少
  • Search again for bar codes. Now, a significantly smaller number of
  • candidates should be found, and the overall runtime should be reduced.
    Times := []
    *开始寻找条码
    for I := 0 to NumRepeat by 1
    *开始计时
    count_seconds (Start)
    *寻找条码值
    find_bar_code (Image, SymbolRegions, BarCodeHandle, ‘auto’, DecodedDataStrings)
    *计时结束
    count_seconds (End)
    Time := End - Start
    Times := [Times,Time]
    endfor
    RunTimeContrastMinHigh := 1000 * median(Times)
    *获取区域,显示结果
  • Get candidate regions and display results
    *聚焦窗体
    dev_set_window (WindowHandle)
    *获取区域
    get_bar_code_object (BarCodeObjects, BarCodeHandle, ‘all’, ‘candidate_regions’)
    *获取区域数量
    count_obj (BarCodeObjects, Number)
    *设置显示颜色
    dev_set_color (‘forest green’)
    *设置线宽
    dev_set_line_width (3)
    *显示物体
    dev_display (BarCodeObjects)
    *求区域的最小外接矩形
    smallest_rectangle1 (SymbolRegions, Row1, Column1, Row2, Column2)
    *获取结果
    get_bar_code_result (BarCodeHandle, ‘all’, ‘decoded_types’, DecodedTypes)
    *显示信息
    disp_message (WindowHandle, DecodedTypes + ‘\n’ + DecodedDataStrings, ‘image’, Row1, Column2 + 20, ‘black’, ‘true’)
    *激活窗体
    dev_set_window (WindowHandleText)
    *显示一些信息
    Message := [’‘contrast_min’ = ’ + ContrastMinValue + ‘:’,’ Found ’ + Number + ’ candidate(s) in ’ + (RunTimeContrastMinHigh$’.4’) + ’ ms’]
    disp_message (WindowHandleText, Message, ‘window’, 62, 12, ‘forest green’, ‘false’)
    Message := ‘Setting ‘contrast_min’ to a higher value typically results in a faster execution and in fewer false positives.’
    MessageWrapped := regexp_replace(Message + ’ ‘,[’(.{0,35})\s’,‘replace_all’],’$1\n’)
    disp_message (WindowHandleText, MessageWrapped, ‘window’, 122, 12, ‘black’, ‘false’)
  • 清除句柄,释放内存
  • Close the bar code reader
    clear_bar_code_model (BarCodeHandle)

Barcode读取之barcode_para_contrast_min.hdev相关推荐

  1. Barcode读取之barcode_param_majority_voting.hdev

    *这个项目展示了''majority_voting''对一维码读取的影响 This example program shows the effect of the bar code parameter ...

  2. 二维码读取之2d_data_codes_rectify_symbol.hdev

    *这个实例展示了如何读取一个经过修正的倾斜的条码 This program demonstrates how to read a slanted 2d data code by preprocessi ...

  3. 二维码读取之PDF_417_bottle.hdev

    *本例子展示了如何读取PDF 417的条码 This programs shows how to read 2d data codes of type PDF 417. 关闭更新 dev_update ...

  4. 二维码读取之ecc200_small_modules_robustness.hdev

    *这个实例演示了如何读取非常小的ECC200二维码 This example program shows how to find and decode ECC200 symbols that have ...

  5. 二维码读取之ecc200_contrast_tolerance.hdev

    *这个示例程序演示了contrast_tolerance(对比差异,也就是在某些场合检测表面对比度不均匀情况下需要这个参数) *这个参数对条码读取效果的影响 This example demonstr ...

  6. 轻松使用OpenCV Python控制Webcam,读取Barcode

    2019独角兽企业重金招聘Python工程师标准>>> 虽然手机上Barcode应用已经非常流行,但是工作的时候还是用Webcam比较方便.比如需要检测Barcode,我只需要拿We ...

  7. 基于Halcon学习的一维码识别【六】barcode.param_majority_voting.hdev

    该示例程序显示了条形码参数'majority_voting'的效果.条形码阅读器分析多条扫描线,并尝试对其进行解码.默认情况下,一旦一条扫描线被成功解码,该过程就会终止.在某些情况下,由于本地打印错误 ...

  8. 条形码识别软件linux,条形码读取器Barcode Reader Toolkit 2021全新升级!支持Windows和Linux,算法升级!...

    Barcode Reader Toolkit for Windows是一个工具包,允许开发人员在其应用程序中添加条形码检测.该工具包将图像文件或内存位图作为输入,并返回有关每个条形码的信息,包括值,类 ...

  9. Halcon Blob分析之分割并读取啤酒瓶上的数字——bottle.hdev

    分割并读取啤酒瓶上的数字 引言 一.结果 1.1 读取图像 1.2 Blob分析处理后 二.Halcon代码 三.案例主要算子分析 1.create_text_model_reader (Operat ...

最新文章

  1. 全栈Python Flask教程-建立社交网络
  2. 手把手教你写一个生成对抗网络
  3. LOJ.6053.简单的函数(Min_25筛)
  4. 【LeetCode】4.寻找两个正序数组的中位数
  5. java地图瓦片_百度地图瓦片层级范围对照表
  6. 设计模式——模版方法
  7. onSaveInstanceState在系统之后可能会杀掉Activity时调用,onStop之前
  8. C#开源项目:SiMay远程控制管理系统
  9. webstorm 高效开发 (html)
  10. C语言游戏编程之反弹小球
  11. win7下ApmServ启动失败问题
  12. 八爪鱼采集数据的一般流程
  13. python读取excel文件数据并且画折线图(入门级)
  14. 很老很老的老偏方,小病一扫光
  15. 主流机器视觉软件介绍
  16. failed to open file mysql,导入mysql数据库打不开的解决办法
  17. 【死链】JDK1.7中HashMap在多线程环境的并发问题源码分析
  18. 一款实用免费的日志自动化分析工具
  19. 【计算机毕业设计】201论坛系统设计与实现
  20. 转载,python处理excel转换成xml文件

热门文章

  1. 学习软件工程导论的心得体会
  2. 还说Facebook创始人扎克伯格开飞度?这回被打脸了
  3. 碳足迹-ISO14064认证
  4. 用 Python 通过雅虎财经获取股票数据
  5. oracle实体视图日志,Oracle案例02——ORA-12034: SCOTT.USER_TABLE 上的实体化视图日志比上次刷新后的内容新...
  6. 申宝股票-市场全天弱势洗盘
  7. 02 锁版本--通用模块--knife4j--profiles
  8. 省市区三级行政区代码(包含港澳台)sql1
  9. 推荐一个基于 Vue 的前端界面可视化设计器项目
  10. CMNET和CMWAP区别