欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Halcon 获取内圆环圆心|半径

程序员文章站 2022-05-21 09:29:53
...

上结果:
Halcon 获取内圆环圆心|半径
上原图:
Halcon 获取内圆环圆心|半径
上代码:

*获取图片
read_image (Image, 'D:/HalconWorkplace/img/OCR2.png')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowID)
*二值化
threshold (Image, Region1, 220, 255)
*膨胀腐蚀操作
erosion_rectangle1 (Region1, ccc, 20, 20)
dilation_rectangle1 (ccc, aaa,20, 20)
*像素融合
connection (aaa, ConnectedRegions)
*获取边缘
gen_contour_region_xld (ConnectedRegions, Contours, 'border')
*选择合适大小区域
select_shape(ConnectedRegions, SelectedRegions1, 'circularity', 'and', 0.6, 1)
*获取取到圆的边缘
gen_contour_region_xld (SelectedRegions1, ppp, 'border')
*获取圆面积以及中心坐标
area_center (SelectedRegions1, Area, Row,Column)
*获取包围圈长度
fuzzy_perimeter (SelectedRegions1,Image, 0, 255, Perimeter)
*求半径
CRadius:=sqrt(Area/3.1415926)
*求周长
CCircumference := CRadius*2*3.1415926
dev_display(Image)
dev_display(ppp)
*改变字体颜色
dev_set_color ('green') 
*显示圆心
disp_circle (WindowID, Row, Column, 12)
*显示文字
set_tposition (WindowID, 200, 350)
write_string (WindowID,'圆心为:('+Column+','+Row+')')
set_tposition (WindowID, 340, 390)
write_string (WindowID,'半径为: '+CRadius)

相关标签: 机器视觉