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) :箭头的宽度(以像素为单位)