1.1应用示例思路
(1) 利用Blob分析(一般步骤:图像阈值分割、获取连通区域、计算Blob的相关几何特征),获取目标区域。
(2) 求目标区域的中心坐标和方向。
1.2应用实例代码
* clip.hdev: Orientation of clips
*是否必须在活动的图形窗口中显示图标对象,'off':不显示
dev_update_window ('off')
*读取图像
read_image (Clip, 'clip')
*获取图像的宽和高
get_image_size (Clip, Width, Height)
*关闭已打开的图形窗口
dev_close_window ()
*打开一个新的图形窗口
dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowID)
*在当前图形窗口中显示图像
dev_display (Clip)
*设置当前图形窗口的文本字体格式,字体大小,字体样式
set_display_font (WindowID, 14, 'mono', 'true', 'false')
*在窗口右下方显示“按下运行(F5)继续”
disp_continue_message (WindowID, 'black', 'true')
stop ()
*图像二值化阈值分割
binary_threshold (Clip, Dark, 'max_separability', 'dark', UsedThreshold)
*计算区域的连通组件
connection (Dark, Single)
*通过面积特征筛选区域
select_shape (Single, Selected, 'area', 'and', 5000, 10000)
*设置区域的填充模式
dev_set_draw ('fill')
*用不同的颜色显示图形窗口的对象
dev_set_colored (12)
*在当前图形窗口中显示区域
dev_display (Selected)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*在当前图形窗口中显示图像
dev_display (Clip)
*在图形窗口设置对象的颜色
dev_set_color ('green')
*在当前图形窗口中显示区域
dev_display (Selected)
*计算区域的方向
orientation_region (Selected, Phi)
*计算输入区域的面积和中心(面积定义为一个区域的像素数;中心计算为所有像素的行坐标或列坐标的平均值)。
area_center (Selected, Area, Row, Column)
*设置输出对象的线宽为3
dev_set_line_width (3)
*设置区域的填充方式
dev_set_draw ('margin')
Length := 80
*在图形窗口设置对象的颜色
dev_set_color ('blue')
*在图形窗口中显示箭头
disp_arrow (WindowID, Row, Column, Row - Length * sin(Phi), Column + Length * cos(Phi), 4)
*在图形窗口的指定位置(行、列)显示文本信息
disp_message (WindowID, deg(Phi)$'3.1f' + ' deg', 'image', Row, Column - 100, 'black', 'false')
dev_update_window ('on')