一、第一个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,后续将继续进行学习及笔记记录
若有错误请指正.