Halcon计算最小外接矩形Smallest_rectangle2
该算子用于求最小外接矩形。该算子的原型如下:
smallest _rectangle2 (Regions : : : Row, Column, Phi, Lengthl, Length2)
其各参数的含义如下。
参数1:Regions 表示输入的区域。
参数2和3:Row、Column 为输出参数,表示最小外接矩形的几何中心坐标。
参数4:Phi 为输出参数,表示最小外接矩形的角度方向。
参数5和6:Length1、Length2分别表示矩形的两个方向的内径(边长的一半)。
以某农产品图像为例,求前景目标的最小外接矩形。这里使用smallest_rectangle2算子,将输入图像区域的最小外接矩形的中心和几何参数计算了出来,并在窗口中进行了绘制。效果如图所示。
实现代码如下:
dev_close_window ()
read_image (Image, 'data/garlic2')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)
rgb1_to_gray (Image, GrayImage)
*使阈值处理提取出了较暗的区域
threshold (GrayImage, Region, 100, 255)
*将非连通区域分割成一组区域的集合
connection (Region, ConnectedRegions)
*利用面积特征,将比较大快的区域分割出来
select_shape(ConnectedRegions,selectRegion,'area','and',50000,200000)
*求最小外接矩形
smallest_rectangle2 (selectRegion, Row1, Column1, Phi, Length1, Length2)
*根据矩形参数创建举行的轮廓
gen_rectangle2_contour_xld (Rectangle1, Row1, Column1, Phi, Length1, Length2)
*显示最小外接矩形
dev_set_window (WindowHandle)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_display (Image)
dev_display (Rectangle1)
上述代码实现了将暗背景上的较亮目标提取出来,求出了目标的最小外接矩形,并将轮廓绘制
在了窗口中。