Halcon计算一个区域的最大内接圆 inner_circle

本文介绍了如何使用Halcon计算机视觉库计算给定区域的最大内接圆,包括读取图像、选择感兴趣区域、阈值处理、区域分割以及应用inner_circle函数获取圆心和半径,最后绘制出最大内接圆形和形状边缘。
摘要由CSDN通过智能技术生成

Halcon计算一个区域的最大内接圆

该算子用于计算一个区域的最大内接圆,其原型如下:

inner_circle(Regions : :: Row, Column, Radius)

参数1:Regions 表示输入的区域。
参数2和3:Row、Column为输出参数,表示最大内接圆的圆心坐标。
参数4:Radius 为输出参数,表示最大内接圆的半径。
以几个简单图形为例,求各自的最大内接圆。这里使用inner_circle算子,将输入图像区域的
最大内接圆的中心和半径计算了出来,并在窗口中进行了绘制。效果如图所示。
在这里插入图片描述
实现代码如下:

dev_close_window ()
*读取图像
read_image (Image, 'data/crossShape')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowID)
rgbl_to_gray (Image, GrayImage)
*创建矩形选区,选择感兴趣区域
gen_rectanglel (Rectangle, 100, 127, 325, 490)
reduce_domain (GrayImage, Rectangle, ROI)
*进行阈值处理,提取出图中较暗的包含孔洞的区域
threshold (ROI, Regions, 50, 255)
*将不连通的部分独立分割出来,成为一组区域
connection (Regions, ConnectedRegions)
select_shape_std (ConnectedRegions, SelectedRegion3, 'max_area',70)
dev_set_draw ('fill')
*求出3个区域的最大内接圆的中心和半径
inner_circle (SelectedRegion3, Row, Column,Radius)
*绘制圆形
gen_circle(Circles,Row,Column,Radius)
dev_set_window (WindowID)
*绘制形状的边缘
dev_set_draw ('margin')
dev_set_line_width (3)
*显示内接圆形
dev_display (Image)
dev_display (Circles)

上述代码实现了提取图中较暗的区域,并绘制出了各区域的最大内接圆形。

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

electrical1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值