内接圆和外接矩形
目录
内接圆
1.读取图像
2.设置展示颜色并划分区域
3.输出显示内接圆
外接矩形
1.记载图片
2.转成灰度图
3.使用阈值分割提取出图片中鼠标的区域
4.进行外接矩形
方法一:直接获取最小的外接矩形
方法二:如果图形有角度偏移
内接圆
在Halcon中,寻找图像中的内接圆(即圆完全位于多边形内部)可以通过几个步骤实现。Halcon提供了多种函数来处理图像和形状,包括寻找和绘制圆。以下是使用Halcon进行内接圆检测的一般步骤:
1.读取图像
read_image (Image, 'fabrik')
2.设置展示颜色并划分区域
dev_set_color ('green')
dev_set_colored (12)
dev_set_draw ('fill')// fill 填充模式
regiongrowing (Image, Regions, 1, 1, 3, 500)
3.输出显示内接圆
* inner_circle 内接圆 输出的内接圆的半径和坐标
inner_circle (Regions, Row, Column, Radius)
dev_set_color ('white')
dev_get_window (WindowHandle)
disp_circle (WindowHandle, Row, Column, Radius)


通过上述步骤,你可以在Halcon中检测并绘制图像中的内接圆。这种方法虽然基本,但在处理简单的多边形和中等复杂度的图像时是有效的。对于更复杂的情况,可能需要考虑使用更高级的算法或库函数。例如,使用霍夫变换(Hough Transform)来检测圆形,然后验证这些圆形是否完全位于多边形内部。这可以通过将霍夫变换结果与多边形区域的交集计算来实现。
外接矩形
在Halcon中,处理图像时经常会遇到需要检测或绘制矩形框的需求。以下是一些基本的方法和步骤,用于在Halcon中处理外部矩形框(即,从图像中提取或绘制外部矩形框)。
1.记载图片
read_image (Image, '1')
以上是加载的图片,我们发现所加载的图片的像素阈值共有三个;这说明该图像是一个彩图,我们需要给它转为灰度图。
2.转成灰度图
rgb1_to_gray (Image, GrayImage)
最终效果如下,这时图片的阈值就变成了一个:
3.使用阈值分割提取出图片中鼠标的区域
threshold (GrayImage, Region, 0, 250)
分割后结果如下:
4.进行外接矩形
方法一:直接获取最小的外接矩形
dev_set_draw ('margin')
smallest_rectangle1 (Region, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
最终效果图如下:
方法二:如果图形有角度偏移
smallest_rectangle2 (RegionTrans, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle1, Row, Column, Phi, Length1, Length2)
最终效果图如下: