HALCON学习笔记

一、第一个halcon程序

        初次接触视觉算法,对很多概念还是一个很模糊的状态。

        第一次使用halcon,根据B站联为智能教育的教学视频进行学习记录

1.读取图片

* Reading an image:
  read_image(Image,'mreut')

* Reading 3 images into an image array:
  read_image(Images,['ic0','ic1','ic2'])

HALCON算子:     read_image(Image, FileName) 

Parameters:        Image (output_object)        FileName (input_control)

2.获取图片大小

get_image_size(Image, Width, Height)

HALCON算子:     get_image_size(Image, Width, Height)                                   

Parameters:        Image (input_object)        Width (output_control) 、Height (output_control)

3.使用全局阈值分割图像

threshold(Image, Region, 128, 255)

HALCON算子:     threshold(Image, Region, MinGray, MaxGray )                                   

Parameters:       Image (input_object)       Region (output_object)   

                           MinGray (input_control)<默认128.0 >     MaxGray (input_control)< 默认255.0><限制 MaxGray ≥ MinGray>

阈值选择输入图像中灰度值g满足以下条件的像素:MinGray≤g≤MaxGray

4.计算一个区域的连接组件

connection(Region, ConnectedRegions)

HALCON算子:     connection(Region, ConnectedRegions)

Parameters:        Region (input_object)      ConnectedRegions (output_object)

5.借助形状特征选择区域

select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 8000, 8500)

HALCON算子:     select_shape(Regions, SelectedRegions, Features, Operation, Min, Max : )

Parameters:       Regions (input_object)      SelectedRegions (output_object)   Features (input_control)  Operation (input_control) 

                           Min (input_control)<默认 150.0 >     Max (input_control)<默认 99999.0 > 

通过特征检测,根据特征信息选择对应的Features值,并对Features值进行限制

此处选择特征信息area,面积大小限制在8000~8500

6.区域的面积和中心

area_center(SelectedRegions, Area, Row, Column)

HALCON算子:     area_center(Regions, Area, Row, Column)

Parameters:      Regions (input_object)       Area (output_control)   Row (output_control)   Column (output_control)

area_center计算输入区域的面积和中心,面积定义为一个区域的像素数,中心分别计算为所有像素的线坐标或列坐标的平均值

7.为每个输入点生成一个十字形的XLD轮廓

gen_cross_contour_xld(Cross, Row, Column, 60, 0.0)

HALCON算子:    gen_cross_contour_xld(Cross, Row, Col, Size, Angle)

Parameters:     Cross (output_object)       Row (input_control)   Col (input_control)   Size (input_control)<默认 6.0 >  Angle (input_control)<默认 0.785398 >

Row,Column为area_center计算得出,Size为十字形大小,Angle为十字形角度

二、完整代码

read_image(Image, 'D:/HalCon/HalConWorkPlace/20221004/fabrik')

*获取图片大小
get_image_size(Image, Width, Height)

*关窗口
dev_clear_window()

*打开窗口
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)

*显示图片
dev_display(Image)

threshold(Image, Region, 128, 255)

connection(Region, ConnectedRegions)

select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 8000, 8500)

area_center(SelectedRegions, Area, Row, Column)

gen_cross_contour_xld(Cross, Row, Column, 60, 0.0)

三、运行结果:

 

HALCON学习笔记_第1张图片

 今天为初步了解HALCON,后续将继续进行学习及笔记记录

若有错误请指正.

你可能感兴趣的:(机器视觉,halcon,学习,算法)