计量模型学习4,获得选定的圆的像素坐标和半径,用于设置模板或其他处理

本文介绍了一种使用编程方法来精确获取图像中圆形区域坐标及半径的技术。通过绘制两个与待测圆相切的圆框,算法能够计算并显示这些参数。文中详细展示了实现过程及其代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

程序做到准确获得画得的原形区域的坐标和半径。
步骤:1、运行
2、在感兴趣的区域画两个圆框,圆框与要测圆应大致(尽量)重合。
3、输出。
哈哈,直接上代码:
(去个前奏,去个尾巴没多少东西,自己看吧)

dev_update_off ()
read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Im1.bmp')
dev_close_window ()
get_image_size (Image,Width, Height)
dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_set_color ('lime green')
dev_set_line_width (3)
dev_display (Image) 

*------------------步骤2:画矩形得直线1----------------------
*创建计量模型需要的数据结构:MetroLineModel;创建的用于测量的数据结构
create_metrology_model (MetroLineModel1)
* 设置计量对象的图像大小(不是必须的,但可以提高第一次测量的运行时间)
set_metrology_model_image_size (MetroLineModel1, Width, Height)
**------------------步骤1:----------------------
draw_circle(WindowHandle,RowC1, ColumnC1, Radius1)
draw_circle(WindowHandle,RowC2, ColumnC2, Radius2)
* 添加几个完整的圆圈
CircleParam := [RowC1, ColumnC1, Radius1]
CircleParam := [CircleParam,RowC2, ColumnC2, Radius2]
add_metrology_object_generic (MetroLineModel1, 'circle', CircleParam, 10, 5, 1, 30, [], [], CircleIndices1)
apply_metrology_model (Image, MetroLineModel1)

* 得到一个可视化的测量几何形式
    get_metrology_object_result_contour (ContoursfitCir, MetroLineModel1, 'all', 'all', 1.5)
    * 提取小圆的半径
    get_metrology_object_result (MetroLineModel1, CircleIndices1, 'all', 'result_type', 'all_param', paramAll)

dev_close_window ()
dev_open_window_fit_image (Image, 0, 0, 640, 640, WindowHandle)
disp_obj (Image, WindowHandle)
dev_display (ContoursfitCir)
Message0 := '圆1坐标'+'('+paramAll[0]+ ','+paramAll[1]+')'
Message1 := '圆1半径'+paramAll[2]
Message2 := '21坐标'+'('+paramAll[3]+ ','+paramAll[4]+')'
Message3 := '圆2半径'+paramAll[5]
disp_message (WindowHandle,  Message0+'\n'+Message1+'\n'+Message2+'\n'+Message3, 'window', -1, -1, 'red', 'true')

stop()

所用的图像与结果
1
2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值