一些常用的关于显示的算子
1. 算子
只介绍常用的算子:
1.1 打开窗口
dev_open_window( : : Row, Column, Width, Height, Background : WindowHandle)
1.2 打开一个适合图像尺寸的窗口
dev_open_window_fit_image(Image : : Row, Column, WidthLimit, HeightLimit : WindowHandle)
1.3 清空当前窗口
dev_clear_window( : : : )
1.4 关闭当前窗口
dev_close_window( : : : )
1.5 获得窗口句柄
dev_get_window( : : : WindowHandle)
1.6 设置窗口更新状态
dev_update_window( : : DisplayMode : )//窗口实时刷新会减慢速度
1.7 设置区域线宽
dev_set_line_width( : : LineWidth : )
1.8 设置区域填充模式
dev_set_draw( : : DrawMode : )
1.9 设置输出颜色数量
dev_set_colored( : : NumColors : )
1.10 设置颜色
dev_set_color( : : ColorName : )
1.11 设置字体
set_display_font( : : WindowHandle, Size, Font, Bold, Slant : )
* 窗口句柄/大小/字体类型/是否加粗/是否倾斜
1.12 显示信息
disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )
* 窗口句柄/需要显示的字符串/坐标系('image'or'window')/行列坐标/是否要底色
1.13 显示图像/区域/XLD
dev_display(Object : : : )
1.14 保存窗口图像
dump_window( : : WindowHandle, Device, FileName : )//包括窗口中的轮廓、字体等信息
1.15 获得窗口图像
dump_window_image( : Image : WindowHandle : )//包括窗口中的轮廓、字体等信息
2. Halocn例程代码
halcon代码
* 下面的while循环是为了关闭当前所有的窗口
* 获取窗口句柄,如果句柄为不是-1,则关闭当前窗口
dev_get_window (WindowHandle)
while (WindowHandle != -1)
dev_close_window ()
dev_get_window (WindowHandle)
endwhile
* 然后读入一张图像
read_image (Image, 'fabrik')
* 这个算子就非常简单了,也是最常用的
* 前面4个参数分别表示窗口左上角点的行列坐标以及窗口的宽度和高度
* 接下来是背景色、窗口句柄
dev_open_window (0, 0, 400, 200, 'black', WindowHandle)
* 把图像显示在这个窗口上,显然此时窗口的比例和图像是不一致的
dev_display (Image)
stop ()
* 将窗口清除一下,这个清除也针对的是当前活跃的窗口而言的
dev_clear_window ()
* 打开一个新的窗口,这次按照图像的真实尺寸来打开,当然要注意的是窗口宽度和高度的参数要设置为-1,-1
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle1)
* 然后再把图像显示上去看一下
dev_display (Image)
stop()
* 设置线宽
dev_set_line_width (3)
* 设置颜色
dev_set_color ('blue')
disp_line (WindowHandle1, 0, 0, 173, 100)
dev_set_color ('green')
disp_line (WindowHandle1, 0, 0, 100, 173)
dev_set_color ('red')
disp_arc (WindowHandle1, 0, 0, rad(90), 0, 200)
stop()
* 设置颜色数量
dev_set_colored (3) //窗口只会显示3种颜色
auto_threshold (Image, Regions, 2)
* 设置区域的填充模式
dev_clear_window ()
dev_set_draw ('margin') //只显示边缘
dev_display (Regions)
dev_clear_window ()
dev_set_draw ('fill') //全部填充
dev_display (Regions)
dev_display (Image)
* 设置字体
set_display_font (WindowHandle1, 36, 'serif', 'true', 'true')
* 显示信息
disp_message (WindowHandle1, '12345678', 'window', 12, 12, 'green', 'true')
disp_message (WindowHandle1, '12345678', 'window', 62, 12, 'blue', 'false')