Halcon一维码识别实例

目录

一维码识别算子

1.创建条形码阅读器模型

2.设置参数

3.检测和读取图像中的条形码符号

4.获取参数

(1)获取一个或多个描述条码模型的参数

(2)访问在条码符号搜索或解码过程中创建的标志性对象。

(3)获取在条码符号解码过程中累积的字母数字结果。

5.清除条码模型

实例代码

效果图


一维码识别算子

1.创建条形码阅读器模型

create_bar_code_model(  GenParamNameGenParamValue , BarCodeHandle)

       参数1: 属性名(-array)(字符串):可以为条形码模型调整的通用参数的名称。

默认值: []

值列表:'barcode_height_min' , 'barcode_width_min' , 'check_char' , 'composite_code' , 'element_size_max' , 'element_size_min' , 'element_size_variable' , 'meas_thresh' , 'meas_thresh_abs' , 'min_code_length' , ' min_identical_scanlines' , ' num_identical_scanlines' ' , 'orientation' , 'orientation_tol' , 'persistence' , 'quiet_zone' , 'start_stop_tolerance' , 'stop_after_result_num' ,“超时”、“火车”、“upce_encoding”

      参数2: GenParamValue(输入控制)  attribute.value(-array) (实数/整数/字符串):可以为条形码模型调整的通用参数的值。

默认值: []

建议值: 0, 0.1, 1, 1.5, 2, 8, 32, 45, 'present' , 'absent' , 'none' , 'CC-A/B' , 'auto' , 'high' , 'low'、“真”、“假”

       参数3: BarCodeHandle(输出控制)  条码(手柄)用于使用和访问条形码模型的句柄。

2.设置参数

set_bar_code_param( BarCodeHandleGenParamNameGenParamValue :)
     参数1: BarCodeHandle(input_control,状态被修改)  条码(手柄)条码模型的句柄。
     参数2: GenParamName(输入控制)  属性名(-array)(字符串)为查找和解码条形码而应调整的通用参数的名称。

默认值: 'element_size_min'

值列表:'abort'、'barcode_height_min'、'barcode_width_min'、'check_char'、'composite_code'、'contrast_min'、'element_size_max'、'element_size_min'、'element_size_variable'、'majority_voting'、'meas_thresh'、'meas_thresh_ab ' , 'merge_scanlines' , 'min_code_length' , 'min_identical_scanlines' , 'num_scanlines' , 'orientation', 'orientation_tol' , '持久性', 'quiet_zone' , 'start_stop_tolerance' , 'stop_after_result_num' , 'timeout' , 'train' , 'upce_encodation'

参数3::GenParamValue(输入控制)  attribute.value(-array) (实数/整数/字符串)为查找和解码条形码而调整的通用参数的值。

默认值: 8

建议值: 0, 0.1, 1, 1.5, 2, 8, 32, 45, 'true' , 'false' , 'present' , 'absent' , 'none' , 'CC-A/B' , 'auto' , '高' , '低' , 'ucc-12' , '零抑制'

3.检测和读取图像中的条形码符号

find_bar_code(Image : SymbolRegions ,BarCodeHandleCodeType ,DecodedDataStrings)

    参数1: Image(输入对象)    单通道图像对象(字节/uint2 )输入图像。如果图像具有缩小的域,则条形码搜索将缩小到该域。这通常会减少操作员的运行时间。但是,如果条码未完全在域内,则无法正确解码条码。
    参数2: SymbolRegions(输出对象)  区域(-数组) 对象成功解码的条码符号的区域。
   
    参数3: BarCodeHandle(input_control,状态被修改)  条码(手柄) 条码模型的句柄。
    参数4: CodeType(输入控制)  字符串(-数组)(字符串)搜索条码的类型。

默认值: “自动”

值列表:'2/5 Industrial'、'2/5 Interleaved'、'Codabar'、'Code 128'、'Code 39'、'Code 93'、'EAN-13 Add-On 2'、'EAN- 13 Add-On 5' , 'EAN-13' , 'EAN-8 Add-On 2' , 'EAN-8 Add-On 5' , 'EAN-8' , 'GS1 DataBar Expanded Stacked' , 'GS1 DataBar Expanded ' , 'GS1 DataBar Limited' , 'GS1 DataBar Omnidir' , 'GS1 DataBar Stacked Omnidir', 'GS1 DataBar Stacked' ,'GS1 DataBar 被截断'、'GS1-128'、'MSI'、'PharmaCode'、'UPC-A Add-On 2'、'UPC-A Add-On 5'、'UPC-A'、'UPC-E附加组件 2'、'UPC-E 附加组件 5'、'UPC-E'、'自动'

    参数5: DecodedDataStrings(输出控制)  字符串(-数组)(字符串)所有成功解码的条码的数据串。

4.获取参数

(1)获取一个或多个描述条码模型的参数

get_bar_code_param( BarCodeHandleGenParamName ,  GenParamValue)
      参数1:  BarCodeHandle(输入控制)  条码(手柄)条码模型的句柄。
     参数2: GenParamName(输入控制)  属性名(-array)(字符串)条码模型要查询的通用参数名称。

默认值: 'element_size_min'

值列表:'barcode_height_min'、'barcode_width_min'、'check_char'、'composite_code'、'contrast_min'、'element_size_max'、'element_size_min'、'element_size_variable'、'majority_voting'、'meas_thresh'、'meas_thresh_abs'、'merge ' , 'min_code_length' , 'min_identical_scanlines' , 'num_scanlines' , 'orientation' , 'orientation_tol' , '持久性' ,'quiet_zone','start_stop_tolerance','stop_after_result_num','timeout','train','upce_encodation'

      参数3: GenParamValue(输出控制)  属性名(-array)(实数/整数/字符串)

通用参数的值。

(2)访问在条码符号搜索或解码过程中创建的标志性对象。

get_bar_code_object(   BarCodeObjects , BarCodeHandleCandidateHandleObjectName  )
    参数1: BarCodeObjects(输出对象)  对象(-数组) 对象
在条码检测或评估期间作为中间结果创建的对象。
    参数2: BarCodeHandle(输入控制)  条码(手柄)条码模型的句柄。
    参数3: CandidateHandle(输入控制)  整数(字符串/整数)分别指示需要数据的条码结果候选。

默认值: “全部”

建议值: 0、1、2、“全部”

    参数4: ObjectName(输入控制)  字符串(字符串)要返回的标志性对象的名称。

默认值: 'candidate_regions'

值列表:'candidate_regions'、'scanlines_all'、'scanlines_all_plain'、'scanlines_merged_edges'、'scanlines_valid'、'scanlines_valid_plain'、'symbol_regions'

(3)获取在条码符号解码过程中累积的字母数字结果。

get_bar_code_result(   BarCodeHandleCandidateHandleResultName ,  BarCodeResults)
    参数1: BarCodeHandle(输入控制)  条码(手柄)条码模型的句柄。
    参数2: CandidateHandle(输入控制)  整数(字符串/整数)

分别指示需要数据的条码结果候选。

默认值: “全部”

建议值: 0、1、2、“全部”

    参数3: ResultName(输入控制)  属性名(字符串)

要返回的结果数据的名称。

默认值: 'decoded_types'

建议值:“decoded_types”、“decoded_strings”、“decoded_data”、“decoded_reference”、“element_size”、“orientation”、“composite_strings”、“composite_reference”、“aborted”、“quality_isoiec15416”、“quality_isoiec15416_labels”、“svalue_isoie” , 'quality_isoiec15416_float_grades' , 'status' , 'status_id'

    参数4: BarCodeResults(输出控制)  属性值(-array)(字符串/整数/实数)

列出结果。

5.清除条码模型

clear_bar_code_model(BarCodeHandle)

实例代码

 read_image (Image, 'E:/桌面/ccc/tt.jpg')
 *图像模糊
emphasize (Image, ImageEmphasize, 7, 7, 1)
 *亮、暗视
* scale_image (ImageEmphasize, ImageScaled, 1, 100)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_display (ImageEmphasize)
*创建条码模型
create_bar_code_model ([], [], BarCodeHandle)
*设置参数
set_bar_code_param (BarCodeHandle, 'element_size_min', 4)
set_bar_code_param (BarCodeHandle, 'element_size_max', 32)
set_bar_code_param (BarCodeHandle, 'check_char', 'present')
set_bar_code_param (BarCodeHandle, 'persistence', 1)
set_bar_code_param (BarCodeHandle, 'num_scanlines', 10)
set_bar_code_param (BarCodeHandle, 'start_stop_tolerance', 'high')
set_bar_code_param (BarCodeHandle, 'orientation', 0)
set_bar_code_param (BarCodeHandle, 'orientation_tol', 20)
set_bar_code_param (BarCodeHandle, 'element_height_min', 100)
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 0)

*解码
* smallest_rectangle2 (ImageEmphasize, Row, Column, Phi, Length1, Length2)

* decode_bar_code_rectangle2 (ImageScaled, BarCodeHandle, ['Code 128','Code 39'], Row, Column, Phi, Length1, Length2, DecodedDataStrings)

find_bar_code (ImageEmphasize, SymbolRegions, BarCodeHandle, ['Code 128','Code 39'], BarCodeStrings)

get_bar_code_param (BarCodeHandle, 'element_size_min', GenParamValue)

get_bar_code_object (BarCodeObjects, BarCodeHandle, 'all', 'candidate_regions')

get_bar_code_result (BarCodeHandle, 'all', 'decoded_types', BarCodeResults)
get_bar_code_result (BarCodeHandle, 0, 'quality_isoiec15416', Quality)

set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
disp_message (WindowHandle, BarCodeResults+'码:'+BarCodeStrings, 'image', 50, 50, 'black', 'false')

*清除条码模型
clear_bar_code_model (BarCodeHandle)
stop ()

效果图

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Halcon三维管道范例是指在Halcon软件中,用于三维视觉处理的一些可重复使用的程序示例。它们通常是由Halcon团队编写的,用于演示如何利用Halcon的三维视觉功能来处理特定类型的问题。 这些示例程序的作用是帮助开发者更快地理解和掌握Halcon的三维视觉技术,从而更快地构建自己的应用程序。 例如,Halcon 3D Pipeline模块提供了流畅的可编程接口,可以将不同的3D视觉处理步骤组合在一起,从而实现定位、分割、识别、跟踪等功能。Halcon的三维管道范例则包含这些处理步骤的示例,可以帮助开发者更快地构建出自己的3D视觉处理流程。 此外,Halcon的三维管道范例还涉及到基于深度信息的渲染、3D数据可视化等方面。这些示例可以帮助用户掌握Halcon的3D可视化技术,从而更好地展现和分析3D视觉数据。 总之,Halcon三维管道范例是一些有助于开发者快速掌握Halcon的3D视觉功能的示例程序,可以提供基本的数据操作、流程优化、技术演示以及算法实现等一系列方便操作的工具。 ### 回答2: Halcon三维管道范例是一个基于Halcon软件的三维视觉管道应用案例。它主要用于工业自动化领域中对三维物体的识别和定位。在该范例中,Halcon提供了一整套的工具和算法,可以采用多种方式对三维场景进行分析和处理。通过调用这些工具,能够实现对三维物体的检测、定位、分类和测量等功能。 该范例中包含了许多常见的三维视觉问题,例如三维物体的定位及姿态估计、三维物体的识别和分类、点云数据的处理和分析等。同时范例也提供了一些三维视觉的实例,例如将三维场景几何图形提取、平面检测等,这些实例可以帮助用户理解和了解Halcon三维视觉的原理和实现方法。 我们可以利用Halcon三维管道范例来设计和实现一些工业自动化应用,例如生产线上的物体识别,机器人的自动操作和导航等。通过这些应用,能够提高生产线的自动化程度,减少人力投入,从而降低生产成本,提高生产效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

susan花雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值