好文档 - 专业文书写作范文服务资料分享网站

[精华]博客halcon进修经历

天下 分享 时间: 加入收藏 我要投稿 点赞

[精华]博客halcon进修经历

HALCON

是当今machine vision技术的代表,它总是以最新科技为基础,提供了现今市场中最 强大的vision library。除了提供了完整的标准 machine vision功能,还有一系列优异的功能,例如,3D相机校正, 形状以及原件导向的匹配,次像元精度的物体撷取,计算,利用双像立体量测,任意形状的 ROI,以及更多的功能。

用HALCON 来开发程序的流程:

1 、利用 HDevelop 检视分析影像,建立计算雏形,最后完成视觉计算方法的发展。程序可以分成不同的子程序,每个procedures 可以只做一件事,像初始化,计算,或是清除。主程序用于呼叫其它子程序,传递影像或是接收显示结果。最后,程序输出成我们要用的程序代码,接续下一步工作。

2 、完整的程序发展是在程序设计环境中进行,像是 Microsoft

Visual Studio 。由 HDevelop 输出的程序代码,透过指令加入程序中 ( 例如 include) 。至于程序的接口等等则是利用程序语言的功能来建构,接下来, compiled and linked ,产生应用程序。自行撰写的程序和 HALCON library 一 起装入机器中出货,或是将程序卖到客户处。

参数和数据结构:

(iconic ,例如影HALCON 有两种基本的数据型态 : 图像数据

像 ) 以及控制数据 ( control ,例如 变量,整数,字符串,handle 等等 ) 。所有运算子的参数都是以相同的方式排列:输入图像,输 出图像,输入控制,输出控制。 当然,并非所有的运算子都具有上列四类参数,不过参数排 列的次序依旧相同。

ROI :影像中要处理的数据范围。

region 即是一堆像元的集合。 region 中的像元不一定要相连,如果要让相连接的像元成为一个 region ,只要呼叫运算子 connection 即可。

XLD 包含了所有等值线以及多边型的数据。 XLD 对象中除了点坐标数据,还包含了全域或区域属性,例如 edge 方向,或是分割时的 regression 参数等等。

Tuples 就像一个数组,其中的数据型态可为整数,浮点数或是字符串。当我们计算一个 region 的某些特征时,会传回一个 结果,如果计算的是一群 region ,会传回一个 tuple ,其中含有每个 region 的特征计算结果。 Control tuple 的指标由,开始。

Parallel HALCON

运算版本的 HALCON 在多处理器的计算机上能自动进行数据平 行化,分配到不同的处理器去作 业,例如影像。 取像

HALCON 提供了 40 余种取像设备连接接口,他们的名称一律以 HFG 开头,至于以 parHFG 开头者是用于 Parallel HALCON。

comment ( : : Comment : ) 注释语句 exit ( : : : ) 退出函数

open_file ( : : FileName, FileType : FileHandle ) 创建( 'output' or 'append' )或者打开 ( output ) 文本文件 fwrite_string ( : :

FileHandle, String : ) 写入string dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片

get_image_pointer1 ( Image : : : Pointer, Type, Width, Height )

获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸(的宽度和高度)

dev_open_window( : :Row,Column,WidthHeight,Background :Wind owHandle ) 打开一个图形的窗口。

dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置

dev_set_draw (’fill’) 填满选择的区域 dev_set_draw (’margin’) 显示的对象只有边缘线,

dev_set_line_width (3) 线宽用Line Width 指定 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。

dev_set_colored (number) 显示region 是用到的颜色数目

dev_set_color ( : : ColorName : ) 指定颜色 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区

fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角,

Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2,

Column2 : ) 显示的矩形排列成的。disp_rectangle1 显示一个或多个矩 形窗口的产量。描述一个矩形左上角(Row1,Column1) 和右下角(Row2,Column2) 。显示效果如图1.

texture_laws ( Image : ImageTexture : FilterTypes, Shift, FilterSize : )

texture_laws 实行纹理变换图像FilterTypes: 预置的过滤器Shift :减少灰度变化FilterSize :过滤的尺寸

mean_image ( Image : ImageMean : MaskWidth, MaskHeight : ) 平滑图像, 原始灰度值的平均数MaskWidth: 过滤器的宽度面具

bin_threshold ( Image : Region : : ) 自动确定阈值 Region:黑暗的区域的图像

dyn_threshold ( OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )

比较两个像素的图像像素RegionDynThresh(Out) 分割区域Offset: 减少噪音引起的问题LightDark 提取光明、黑暗或类似的地方?

dilation_circle ( Region : RegionDilation : Radius : ) 扩张有一个圆形结构元素的地区 Radius 圆半径

complement ( Region : RegionComplement : : ) 返还补充的区域 reduce_domain ( Image, Region : ImageReduced : : ) 减少定义领域的图像ImageReduced=Image- Region opening_circle ( Region : RegionOpening : Radius : )打开具有圆形结构元素的地区,平滑图像的边界。 Radius :半径 dev_clear_window ( : : : ) 清除视图窗体 get_mbutton ( : : WindowHandle : Row, Column, Button ) 原地等待直到鼠标按下

select_region_point ( Regions : DestRegions : Row, Column : ) 选择所有包含给定像素的区域

dilation_rectangle1 ( Region : RegionDilation : Width, Height : ) 扩张有矩形元素地区 Width 构建的矩形的宽度 difference ( Region, Sub : RegionDifference : : ) 计算两个区域的差异

gen_region_line ( : RegionLines : BeginRow, BeginCol, EndRow,

EndCol : ) 计算区域(起始点和终点)中的线段 intersection ( Region1, Region2 : RegionIntersection : : ) 计算两个区域的交叉点

shape_trans ( Region : RegionTrans : Type : ) 变换形状,形状取决于Type

Halcon学习之赋值

Assign : 对数据赋值,对数组的初始化。但不能对数组中的某一个值进行赋值。

举例:Tuple1 := [1,0,3,4,5,6,7,8,9] // 对数组进行初始化 Val := sin(1.2) + cos(1.2) // 对某一个值进行赋值 Tuple2 := [] // 数组定义

Insert : 对数组中的某一个值进行赋值。

举例:Tuple1[1] := 2 // 将Input 和Result 赋值为Tuple1 区域生长算法

区域生长算法 : 既是根据事先定义的准则将像素或者子区域聚合成更大的区域。基本方法是以“一组”种子开始,将与种子性质相似(灰度级或颜色的特定范围)的相邻像素附加到生长区域的种子上。

Halcon中的区域生长算子( 区域生长算法,将图象被分割为区域 ): regiongrowing ( Image : Regions : Row, Column, Tolerance, MinSize : )

Row:被测试的区域的垂直距离 Column:被测试的区域的水平距离 Tolerance:能忍受的最大的灰度差距 MinSize:最小的输出区域

例 :regiongrowing (Image, Regions, 3, 3, 6, 100)

[精华]博客halcon进修经历

[精华]博客halcon进修经历HALCON是当今machinevision技术的代表,它总是以最新科技为基础,提供了现今市场中最强大的visionlibrary。除了提供了完整的标准machinevision功能,还有一系列优异的功能,例如,3D相机校正,形状以及原件导向的匹配,次像元精度的物体撷取,计算,利用双像立体量测,任意形状的ROI,以
推荐度:
点击下载文档文档为doc格式
64co014cul2wkqq4mj6h371qz5d0jm00klm
领取福利

微信扫码领取福利

微信扫码分享