目录

一维码识别算子

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 ()

效果图

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐