halcon内径提取
原图
处理过程和结果,通过图像切割选取所需要提取的区域,然后通过得到周长和平滑处理再通过对圆进行拟合求出半径的像素,再通过乘指定值来获得实际内径大小。本次工作为0.0138求出数据单位为毫米。代码如下:
read_image (Image, 'C:/Users/Administrator/Desktop/2020.4.28求内径/黄.bmp')
threshold (Image, Regions, 0, 35)
connection (Regions, ConnectedRegions)
fill_up (ConnectedRegions, RegionFillUp)
select_shape (RegionFillUp, SelectedRegions, 'area', 'and', 6601.12, 7393.13)
gen_contour_region_xld (SelectedRegions, Contours, 'border')
smooth_contours_xld (Contours, SmoothedContours, 15)
fit_circle_contour_xld (SmoothedContours, 'algebraic', -1, 0, 0, 3, 2, Row2, Column2, Radius1, StartPhi1, EndPhi1, PointOrder1)
最后的Radius1即为所求出的半径的像素大小。
如果需要指定范围则使用roi来提取区域如果需要拟合椭圆则使用函数
fit_ellipse_contour_xld (Contours, 'fitzgibbon', -1, 0, 0, 200, 3, 2, Row, Column, Phi)
注意!第一行为实际路径自己根据图像位置自行修改