read_image (Image, '彩色相机.bmp')
* 彩色图像转灰度图像
*rgb1_to_gray (Image, GrayImage)
*======================蓝色膜的分离===================
* 分离颜色通道
decompose3 (Image, R, G, B)
* RGB转HSV (颜色空间转换)
trans_from_rgb (R, G, B, H, S, V, 'hsv')
dev_display (S)
* 二值化
threshold (S, Regions, 184, 255)
* 填充孔洞
fill_up (Regions, RegionFillUp)
* 分割
connection (RegionFillUp, ConnectedRegions)
* 特征筛选
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 86683.7, 200000)
* 区域面积和中心坐标
area_center (SelectedRegions, Area, Row, Column)
* 在中心画十字
gen_cross_contour_xld (Cross, Row, Column, 66, 0)
* 显示蓝色膜区域
dev_display (SelectedRegions)
* 选择蓝色来画十字
dev_set_color ('blue')
dev_display (Cross)
* 获取区域的长轴与X轴正方向的夹角
* Halcon的基准都是X轴正方向,逆时针为正,顺时针为负
orientation_region (SelectedRegions, Phi)
regionDeg := deg(Phi)
* 在图形窗口上显示信息
disp_message (3600, '膜区域角度:'+regionDeg + '°', 'window', 12, 12, 'black', 'true')
disp_message (3600, '膜区域中心:'+Row + ',' + Column, 'window', 42, 12, 'black', 'true')
stop()
* 区域的最小外接矩形
smallest_rectangle2 (SelectedRegions, Row1, Column1, Phi1, Length1, Length2)
* 创建这个矩形的xld
gen_rectangle2_contour_xld (Rectangle, Row1, Column1, Phi1, Length1, Length2)
dev_display (Image)
* 设置线的颜色和宽度
dev_set_color ('red')
dev_set_line_width (3)
* 显示最小外接矩形
dev_display (Rectangle)
* 最小外接矩形的中心坐标和角度
disp_message (3600, '最小外接矩形角度:'+deg(Phi1) + '°', 'window', 12, 12, 'black', 'true')
disp_message (3600, '最小外接矩形中心:'+Row1 + ',' + Column1, 'window', 42, 12, 'black', 'true')
stop()
https://download.csdn.net/download/weixin_38566632/35131452