Halcon初步学习二
一、特征监测的应用
gen_rectangle1:创建矩形
(Rectangle名字,Rov1和Column1为左上角开始坐标,Rov2和Column2为右下角结束坐标)
gen_rectangle2:创建任意方向的矩形(放射矩形)
(Rectangle1名字,前两个值为中心做标,后两个值分别是长轴的一半和短轴的一半。rad:可以将Phi夹角转换为度数)
gen_circle:创建一个圆
(Circle名字,第一个中心的列坐标,第二个中心行坐标,圆的半径)
gen_ellipse:创建一个椭圆
(Ellipse名字,前两个是中心坐标,Phi弧度,长轴的半径,短轴的半径)
gen_region_line:创建一条线
(前两个值为开始点的做标,后两个为结束点坐标)
union2:把两个区域合并为一个大的区域
reduce_domain:剪切对象区域(等于把一块已经规划好的区域剪切出来)
elliptic_axis:获取区域的等效椭圆参数
(Ra长轴的一半,Rb短轴的一半,Phi弧度)
area_center:获取区域的面积和中心坐标
MeanRadius := sum(Ra) / |Ra| -1:计算区域的平均长半轴半径,|Ra|代表有多少个存在。
二、判断回形针的方向(练习)
set_display_font(WindowHandle, 16 , 'mono' , 'true' , 'false'):设置窗口字体显示的样式
disp_continue_message(WindowHandle, 'black' , 'true'):在右下角显示
(Press Run(F5) Continue字样)
binary_threshold:二值化阈值操作。意思:找暗的区域或者亮的区域,也可以理解为找背景色,或者前景色。(作用:对图象进行二值化。思路:0—UsedThreshold将回形针分割出来)
orientation_region:获取过滤后图像的方向。Phi弧度
dev_set_line_width(3):设置输出对象的线宽。
disp_arrow:再窗口中显示的箭头。
disp_message:再窗口上显示回形针的度数/字符串。
(第二个填写是固定的度数deg(Phi)$'3.1f' + 'deg')
三、查找PCB上的Pads区域(练习)
dev_set_part:修改窗口里显示图像的大小。
fast_threshold:快速阈值
(里面的20为最小面积不能低于20)
shape_trans:将填充后的区域转化为凸形。
boundary:获取凸形边界
dilation_circle:对边界区域进行膨胀操作
(结构原件为3.5,会变大)
union1:将膨胀的区域合并成一个区域
(跟union2相比这个更为简练切便捷)
edges_sub_pix:便捷提取
select_shape_xld:对边界的轮廓进行过滤
(保留长度在范围[10-200]之间)
union_adjacent_contors_xld:将相邻的轮廓合并为一个轮廓
fit_rectangle2_contour_xld:将合并后的轮廓 合并为一个仿射矩形轮廓 (仿射) 创建一个矩形 获取数据。
gen_rectangle2_contour_xld:生成放射轮廓
四、根据颜色提取想要的目标对象(练习)
for i := 1 to 2 by 1
(i是索引值,1to2是从第1个索引到第2个)
decompose3:获取一个三通道图像里面的每个通道的图像
trans_from_rgb:将RGB三通道数据转化为HSV色彩空间的三通道图像数据。因为我们的RGB不利于我们去查找。
(H 代表色调 S 代表饱和度 V 代表亮度)
threshold:对HSV图像中的饱和度通道进行阈值处理 。
(步骤:先将三根饱和度差不多的过滤出来)
reduce_domain:获取上述法制操作后区域的色调通道图像。
(将上面筛选后的图像从 H 色调中剪切)
closing_circle:对过滤出来的区域进行闭运算。
(先膨胀后腐蚀,目的是为了填充物体的一些空隙 面积不会改变)