计算机视觉
图像处理

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 :WindowHandle )  打开一个图形的窗口。

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学习之计数

在 Halcon 里面计算个数的算子有两个:

1、          count_obj ( Objects : : : Number ) 主要用法是计算 objects 的个数。

2、          assign ( : : Input : Result )  给控制变量分配新值

例: NumBalls := |Radius|

区别 是 Count_obj 主要是用来计算被识别出来的区域的个数

Assign 主要是用来识别数组中的值

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学习之两幅图像处理

sub_image ( ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )

对两幅图像做减法   g’ := (g1 – g2) * Mult + Add

abs_image ( Image : ImageAbs : : )

计算图像的绝对值模型

crop_part ( Image : ImagePart : Row, Column, Width, Height : )

剪切出一个长方形的图像

add_image ( Image1, Image2 : ImageResult : Mult, Add : )

两图像相叠加 g’ := (g1 + g2) * Mult + Add

max_image ( Image1, Image2 : ImageMax : : )

计算两幅图像每个像素点的最大值

min_image ( Image1, Image2 : ImageMin : : )

计算两幅图像每个像素点的最小值

div_image ( Image1, Image2 : ImageResult : Mult, Add : )

两幅图像相除   g’ := g1 / g2 * Mult + Add

mult_image ( Image1, Image2 : ImageResult : Mult, Add : )

两幅图像相乘   g’ := g1 * g2 * Mult + Add

Halcon学习之文本操作

1、新建文本文件

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

2、写文本

fwrite_string ( : : FileHandle, String : )

例如 : fwrite_string (FileHandle, i + ‘ ‘ + Area)

3、  换行操作

fnew_line ( : : FileHandle : ) 换行

4、关闭文本文件

close_file ( : : FileHandle : )

5、 读取文本文件

(1)     字符

fread_char ( : : FileHandle : Char )

(2)     行读取

fread_line ( : : FileHandle : OutLine, IsEOF )

  IsEOF 判断是否到了文本文件的末尾

(3)     字符串读取

fread_string ( : : FileHandle : OutString, IsEOF )

Halcon学习之边缘检测函数

sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 根据图像的一次导数计算图像的边缘

close_edges ( Edges, EdgeImage : RegionResult : MinAmplitude : )

close_edges_length ( Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : ) 使用边缘高度图像关闭边缘间隙。输出的区域包含杯关闭的区域。(感觉是对边缘的扩充)

derivate_gauss ( Image : DerivGauss : Sigma, Component : )

watersheds ( Image : Basins, Watersheds : : ) 从图像中提取风水岭。

zero_crossing ( Image : RegionCrossing : : ) 零交点(二次导数)

diff_of_gauss ( Image : DiffOfGauss : Sigma, SigFactor : ) 近似日志算子( 拉普拉斯高斯) 。

laplace_of_gauss ( Image : ImageLaplace : Sigma : ) 拉普拉斯高斯

 

edges_color_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确的亚像素边缘提取(彩色图像)

edges_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确边缘提取的亚像素(灰度图像)

edges_color ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 根据颜色进行边缘提取

edges_image ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 边缘提取

skeleton ( Region : Skeleton : : ) 计算区域的框架 Skeleton == Region

frei_amp ( Image : ImageEdgeAmp : : ) Frei-chen 模板进行边缘检测(振幅)

frei_dir ( Image : ImageEdgeAmp, ImageEdgeDir : : ) Frei-chen 模板进行边缘检测(振幅和方向)

nonmax_suppression_dir ( ImgAmp, ImgDir : ImageResult : Mode : ) 使用方向图像 抑制所有的超过给定最大值的图像灰度值的点

gen_contours_skeleton_xld ( Skeleton : Contours : Length, Mode : ) 将系统框架转换成 XLD 轮廓

laplace ( Image : ImageLaplace : ResultType, MaskSize, FilterMask : ) 使用有限差分计算拉普拉斯变换

info_edges ( : : Filter, Mode, Alpha : Size, Coeffs ) 估计滤波器的宽度

kirsch_dir ( Image : ImageEdgeAmp, ImageEdgeDir : : ) 使用 Kirsch 算子计算出边缘(振幅和方向)

prewitt_amp ( Image : ImageEdgeAmp : : ) 使用 Prewitt 算子计算出边缘(振幅)

kirsch_amp ( Image : ImageEdgeAmp : : ) 使用 Kirsch 算子计算出边缘(振幅)

highpass_image ( Image : Highpass : Width, Height : ) 从高频成分提取的图像。

sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 使用 Sobel 算子计算出边缘(振幅)

robinson_amp ( Image : ImageEdgeAmp : : ) 使用 Robinson 算子计算出边缘(振幅)

roberts ( Image : ImageRoberts : FilterType : ) 使用 Robert 算子计算边缘

区域生长算法

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

Halcon中的区域生长算子( 区域生长算法,将图象被分割为区域 ):

regiongrowing ( Image : Regions : Row, Column, Tolerance, MinSize : )

Row:被测试的区域的垂直距离

Column:被测试的区域的水平距离

Tolerance:能忍受的最大的灰度差距

MinSize:最小的输出区域

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

转载请注明来源:CV视觉网 » Halcon函数(更新)

分享到:更多 ()
扫描二维码,给作者 打赏
pay_weixinpay_weixin

请选择你看完该文章的感受:

1不错 2超赞 0无聊 0扯淡 0不解 0路过

评论 16

评论前必须登录!

 

  1. #1

    不错