halcon一维码识别

Read bar codes of type 2/5 Industrial

创建条形码阅读器的模型

create_bar_code_model(::GenParamNames,GenParamValues:BarCodeHandle)
  • GenParamNames(input_control) :可以针对条形码模型进行调整的通用参数的名称。
  • GenParamValues(input_control):可以为条形码模型调整的通用参数的值。
  • BarCodeHandle(output_control): 使用和访问条形码模型的句柄。

设置条形码模型的选定参数

set_bar_code_param(:BarCodeHandle,GenParamNames,GenParamValues:)
  • BarCodeHandle(input_control,状态已修改):条形码模型的句柄。
  • GenParamNames(input_control):为查找和解码条形码而应调整的通用参数的名称。
  • GenParamValues(input_control) : 为查找和解码条形码而调整的通用参数的值。

关闭活动的图形窗口

dev_close_window(:::)

打开一个新的图形窗口

dev_open_window(::行,列,宽度,高度,背景:WindowHandle)
  • 行(input_control):左上角的行索引
  • 列(input_control):左上角的列索引
  • 宽度(input_control):窗口的宽度
  • 高度(input_control):窗口的高度
  • 背景(input_control):新窗口背景的颜色
  • WindowHandle(output_control):窗口标识符

用来设置当前窗口的字体属性

set_display_font( : : WindowHandle, Size, Font, Bold, Slant : )
  • WindowHandle (input_control) :新图形窗口的窗口句柄
  • Size (input_control) :Windows系统上的字体大小
  • Font (input_control) :字体名称
  • Bold (input_control) :如果设置为“true”,则使用粗体。默认值为“true”。
  • Slant (input_control) :如果设置为“ true”,则使用倾斜字体。默认值为“true”。

定义区域填充模式

dev_set_draw(:DrawMode:)
  • DrawMode(input_control):区域输出的填充模式

定义区域轮廓输出的线宽

dev_set_line_width( : : LineWidth : )
  • LineWidth (input_control) :轮廓模式下区域输出的线宽

读取具有不同文件格式的图像

read_image( : Image : FileName : )
  • Image (output_object) :读取图像
  • FileName (input_control) :要读取的图像名称

返回图像的大小

get_image_size(图片:::宽度,高度)
  • 图片(input_object) :输入图像
  • 宽度(output_control) :图片宽度
  • 高度(output_control):图片高度

更改活动图形窗口的位置和大小

dev_set_window_extents(:行,列,宽度,高度:)
  • 行(input_control) :左上角的行索引
  • 列(input_control):左上角的列索引
  • 宽度(input_control):窗口的宽度
  • 高度(input_control):窗口的高度

在当前图形窗口中显示图像对象

dev_display(Object:::)
  • Object(input_object) :要显示的图像对象

设置多种输出颜色

dev_set_colored(:NumColors:)
  • NumColors(input_control):输出颜色数

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

find_bar_code(图片:SymbolRegions:BarCodeHandle,CodeType:DecodedDataStrings)
  • 图片(input_object):输入图像
  • SymbolRegions( output_object):成功解码的条形码符号的区域
  • BarCodeHandle(input_control) :条形码模型的句柄
  • CodeType(input_control):所搜索条形码的类型
  • DecodedDataStrings(output_control):所有成功解码的条形码的数据字符串

此过程将编写一条文本消息

disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )
  • WindowHandle (input_control) :图形窗口的窗口句柄,显示消息的位置。
  • String (input_control) :包含要显示的文本消息的字符串数组。数组的每个值将显示在一行中。
  • CoordSystem (input_control) :如果设置为“窗口”,则相对于窗口坐标系给出文本位置。 如果设置为“图像”,则使用图像坐标(这在缩放图像中可能很有用)。默认值’window’,有’window’和’image’两个选项。
  • Row (input_control):所需文本位置的垂直文本对齐方式或行坐标。 -1映射到12。默认值12.建议值:10, 12, 20, 30, ‘bottom’, ‘center’, ‘top’。
  • Column (input_control) :所需文本位置的水平文本对齐方式或列坐标。 -1映射到12。默认值12.建议值:10, 12, 20, 30, ‘center’, ‘left’, ‘right’。
  • Color (input_control) :文本的颜色定义为字符串。 如果设置为[]或’’,则使用当前设置的颜色。 如果传递了字符串元组,则颜色将循环用于每个新位置或文本行。默认值black。
  • Box (input_control) :如果设置为“ true”,则文本将写在橙色框中。 如果设置为“ false”,则不会显示任何框。 如果设置为颜色字符串(例如’white’,’#FF00CC’等),则文本将以该颜色的框书写。 可选地,第二个值控制盒子阴影的外观。默认值true。可选项’true’, ‘false’, ‘white’, ‘red’, ‘forest green’, ‘black’, ‘blue’。

删除条形码模型并释放分配的内存

clear_bar_code_model(:BarCodeHandle:)
  • BarCodeHandle(input_control) :条形码模型的句柄

例子:

* Read bar codes of type 2/5 Industrial                   //条形码的读取
* 
create_bar_code_model ([], [], BarCodeHandle)   //建立一个读取条形码的句柄模型,后续对条形码的一切处理都是基于此。
dev_close_window ()                        //关闭当前活跃的窗口
dev_open_window (0, 0, 120, 300, 'black', WindowHandle)  //打开一个起点为(0,0),宽和高分别为120和300且背景为黑色句柄为WindowHandle。
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')  //显示字体的设置
dev_set_draw ('margin')   //设置感兴趣区域的显示方式,margin为边缘显示,fill为填充。dev_set_line_width (3)    //线宽3号
for I := 1 to 4 by 1        //for循环,意在共四张条形码图像待处理
    read_image (Image, 'barcode/25industrial/25industrial0' + I) //从路径中读取条形码图像,赋予Image
    get_image_size (Image, Width, Height)    //得到图像宽度与高度信息
    dev_set_window_extents (0, 0, Width - 1, Height - 1)  //将显示窗口设置与图像等大小。
    dev_display (Image)     //显示图像
    dev_set_color ('green')   //设置外部输出颜色
    * Read bar code, the resulting string includes the check character
   set_bar_code_param (BarCodeHandle, 'check_char', 'absent')   //设置条形码读取算方法
    这其中包括条形码字数大小,扫描方式,条形码种类设置,训练方法的设置,本函数中
    使用 'check_char'且设置为'absent',我的理解为识别完条形码之后不再检测其正确性。
    find_bar_code (Image, SymbolRegions, BarCodeHandle, '2/5 Industrial', DecodedDataStrings)        //根据建立的查找模型查找在图像Image中查找条形码,保存在DecodedDataStrings中。
    disp_message (WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'false')//在窗口中显示检测到的条形码数值。
    LastChar := strlen(DecodedDataStrings)1     //字符串长度-1
    disp_message (WindowHandle, sum(gen_tuple_const(LastChar,' ')) + DecodedDataStrings{LastChar}, 'window', 12, 12, 'forest green', 'false') //将最后一位数值显示为绿色。
    stop ()
    * Read bar code using the check character to check the result, i.e.,
    * the check character does not belong to the returned string anymore.
    * If the check character is not correct, the bar code reading fails
    dev_set_color ('green')  //设置显示颜色
    set_bar_code_param (BarCodeHandle, 'check_char', 'present')  //设置条形码模型,'present'为检定条形码检测的正确性,
    find_bar_code (Image, SymbolRegions, BarCodeHandle, '2/5 Industrial', DecodedDataStrings)   //扫描得到条形码数值,并保存于DecodedDataStrings中。
    disp_message (WindowHandle, DecodedDataStrings, 'window', 36, 12, 'black', 'false')//显示
    dev_set_color ('magenta')  //设置显示颜色为品红色。
    if (I < 4)
        stop ()
    endif
endfor
clear_bar_code_model (BarCodeHandle)  //清除所建立的条形码模

reader autodiscrimination feature of HALCON

在程序执行期间打开或关闭变量窗口的更新

dev_update_var(:DISPLAYMODE:)
  • DisplayMode(input_control):图形输出模式
    默认值: “关闭”
    值列表:‘off’,‘on’

设置一种或多种输出颜色

dev_set_color(:ColorName:)

ColorName(input_control) :输出颜色名称
默认值: “白色”
建议值:“白色”,“黑色”,“灰色”,“红色”,“绿色”,“蓝色”,“#003075”,“#e53019”,“#ffb529”

清除活动图形窗口的内容

dev_clear_window(:::)

此过程在屏幕的右下角显示“单击’运行’以继续”

disp_continue_message( : : WindowHandle, Color, Box : )
  • WindowHandle (input_control) :窗口的句柄,将在其中显示文本。
  • Color (input_control) :定义文本颜色。 如果设置为“”或“自动”,则使用当前设置的颜色。
  • Box (input_control) :如果设置为“ true”,则文本将写在白框中。

经过的时间

count_seconds(:::秒)
  • 秒(output_control) :自程序启动以来的处理时间。

返回另一个元组中所有出现的元组的索引

tuple_find(::Tuple,ToFind:Indices)
  • Tuple (input_control) :输入元组进行检查
  • ToFind (input_control) :输入带有值的元组以查找
  • Indices (output_control) :要在元组中查找的值的出现的索引

从对象元组中选择对象

select_obj(Objects : ObjectSelected : Index : )
  • Objects (input_object) :输入对象
  • ObjectSelected (output_object) :选定的对象
  • Index (input_control) :要选择的对象的索引

获取在条形码符号解码期间累积的字母数字结果

get_bar_code_result(::BarCodeHandle,CandidateHandle,ResultName:BarCodeResults)
  • BarCodeHandle(input_control):条形码模型的句柄
  • CandidateHandle(input_control) :指示条形码结果分别是需要数据的候选者
  • ResultName(input_control):要返回的结果数据的名称
  • BarCodeResults(output_control):列出结果

获取有关操作员参数的信息

get_param_info(::OperatorName,ParamName,Slot:Information)
  • OperatorName(input_control):需要其参数更多信息的操作员名称
  • ParamName (input_control) :需要更多信息的参数名称
  • Slot (input_control) :所需信息
  • Information (output_control) :信息(如果没有可用信息,则为空)

区域的面积和中心

area_center(Regions : : : Area, Row, Column)
  • Regions (input_object) :要检查的区域
  • Area (output_control) :区域面积
  • Row (output_control):中心的行索引
  • Column (output_control):中心的列索引

生成特定长度的元组并初始化其元素

tuple_gen_const(::Length,Const:Newtuple)
  • Length (input_control) :要生成的元组的长度
  • const(input_control):用于初始化元组元素的常数
  • Newtuple (output_control) :新元组

Orientation with reading direction of a bar code

围绕其中心旋转图像

rotate_image(Image : ImageRotate : Phi, Interpolation : )
  • Image (input_object) :输入图像
  • ImageRotate (output_object) :旋转的图像
  • Phi (input_control) :旋转角度
  • Interpolation (input_control) :插值类型

创建箭头形状的XLD轮廓

gen_arrow_contour_xld( : Arrow : Row1, Column1, Row2, Column2, HeadLength, HeadWidth : )
  • Arrow (output_object) :生成的xld
  • Row1 (input_control) :起点的行坐标
  • Column1 (input_control) :起点的列坐标
  • Row2 (input_control):终点的行坐标
  • Column2 (input_control) :终点的列坐标
  • HeadLength (input_control):箭头的长度(以像素为单位)
  • HeadWidth (input_control) :箭头的宽度(以像素为单位)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值