Barcode读取之barcode_para_contrast_min.hdev
*本例展示了如何使用一维码参数’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相关推荐
- Barcode读取之barcode_param_majority_voting.hdev
*这个项目展示了''majority_voting''对一维码读取的影响 This example program shows the effect of the bar code parameter ...
- 二维码读取之2d_data_codes_rectify_symbol.hdev
*这个实例展示了如何读取一个经过修正的倾斜的条码 This program demonstrates how to read a slanted 2d data code by preprocessi ...
- 二维码读取之PDF_417_bottle.hdev
*本例子展示了如何读取PDF 417的条码 This programs shows how to read 2d data codes of type PDF 417. 关闭更新 dev_update ...
- 二维码读取之ecc200_small_modules_robustness.hdev
*这个实例演示了如何读取非常小的ECC200二维码 This example program shows how to find and decode ECC200 symbols that have ...
- 二维码读取之ecc200_contrast_tolerance.hdev
*这个示例程序演示了contrast_tolerance(对比差异,也就是在某些场合检测表面对比度不均匀情况下需要这个参数) *这个参数对条码读取效果的影响 This example demonstr ...
- 轻松使用OpenCV Python控制Webcam,读取Barcode
2019独角兽企业重金招聘Python工程师标准>>> 虽然手机上Barcode应用已经非常流行,但是工作的时候还是用Webcam比较方便.比如需要检测Barcode,我只需要拿We ...
- 基于Halcon学习的一维码识别【六】barcode.param_majority_voting.hdev
该示例程序显示了条形码参数'majority_voting'的效果.条形码阅读器分析多条扫描线,并尝试对其进行解码.默认情况下,一旦一条扫描线被成功解码,该过程就会终止.在某些情况下,由于本地打印错误 ...
- 条形码识别软件linux,条形码读取器Barcode Reader Toolkit 2021全新升级!支持Windows和Linux,算法升级!...
Barcode Reader Toolkit for Windows是一个工具包,允许开发人员在其应用程序中添加条形码检测.该工具包将图像文件或内存位图作为输入,并返回有关每个条形码的信息,包括值,类 ...
- Halcon Blob分析之分割并读取啤酒瓶上的数字——bottle.hdev
分割并读取啤酒瓶上的数字 引言 一.结果 1.1 读取图像 1.2 Blob分析处理后 二.Halcon代码 三.案例主要算子分析 1.create_text_model_reader (Operat ...
最新文章
- 全栈Python Flask教程-建立社交网络
- 手把手教你写一个生成对抗网络
- LOJ.6053.简单的函数(Min_25筛)
- 【LeetCode】4.寻找两个正序数组的中位数
- java地图瓦片_百度地图瓦片层级范围对照表
- 设计模式——模版方法
- onSaveInstanceState在系统之后可能会杀掉Activity时调用,onStop之前
- C#开源项目:SiMay远程控制管理系统
- webstorm 高效开发 (html)
- C语言游戏编程之反弹小球
- win7下ApmServ启动失败问题
- 八爪鱼采集数据的一般流程
- python读取excel文件数据并且画折线图(入门级)
- 很老很老的老偏方,小病一扫光
- 主流机器视觉软件介绍
- failed to open file mysql,导入mysql数据库打不开的解决办法
- 【死链】JDK1.7中HashMap在多线程环境的并发问题源码分析
- 一款实用免费的日志自动化分析工具
- 【计算机毕业设计】201论坛系统设计与实现
- 转载,python处理excel转换成xml文件
热门文章
- 学习软件工程导论的心得体会
- 还说Facebook创始人扎克伯格开飞度?这回被打脸了
- 碳足迹-ISO14064认证
- 用 Python 通过雅虎财经获取股票数据
- oracle实体视图日志,Oracle案例02——ORA-12034: SCOTT.USER_TABLE 上的实体化视图日志比上次刷新后的内容新...
- 申宝股票-市场全天弱势洗盘
- 02 锁版本--通用模块--knife4j--profiles
- 省市区三级行政区代码(包含港澳台)sql1
- 推荐一个基于 Vue 的前端界面可视化设计器项目
- CMNET和CMWAP区别