常州机器视觉培训

常州上位机软件开发

常州工业机器人编程设计培训

常州PLC培训

常州PLC

常州PLC编程培训

常州电工培训

常州和讯plc培训中心欢迎您!
热门课程
联系方式
  • 常州和讯自动化培训中心
  • 常州市新北区府琛商务广场2号楼1409室
  • 电话:0519-85602926
  • 手机:15861139266 13401342299
当前位置:网站首页 > 新闻中心 新闻中心
halcon教程之防止多窗口闪烁-常州机器视觉学习,常州上位机学习
日期:2024-3-18 17:16:15人气:  标签:常州机器视觉学习 常州上位机学习

在使用Halcon进行图像显示时窗口图像会闪烁,为了解决这个问题,Halcon提供了防止闪烁的函数:

即Halcon的系统设置参数设置函数set_system。

set_system具有参数值' flush_graphic '设置为’False’则窗口暂停刷新,将需要显示的内容存放到显示队列中。

当绘制完要显示的内容时将' flush_graphic '设置为’True’即可将显示队列中的值统一显示。

该方法确实在防止单窗口闪烁是非常有效,但是因为这个参数的设置属于系统级的,假如我们的系统存在两个甚至多个窗口,且每个窗口随机更新图像,无法做到每个每个窗口同时更新,则这个方法就无能为力了。


为了解决多窗口防止闪烁的问题,可以采用双窗口缓存的办法。


1)获取显示窗口的尺寸

window.GetWindowExtents(out hv_WindowRow, outhv_WindowColumn, out hv_WindowWidth, out hv_WindowHeight);


2)采用Open_Window打开一个缓冲窗口;

windowBuffer.OpenWindow(hv_WindowRow, hv_WindowColumn,hv_WindowWidth, hv_WindowHeight, 0, "buffer","");



看一下Halcon中关于这个函数的定义:

void HWindow.OpenWindow(int row,int column,int width,int height, HTuple fatherWindow,string mode,string machine)

前四个参数:int row, int column, int width, int height,为窗口的位置和尺寸;

HTuple fatherWindow:该缓存窗口隶属的窗口号;

string mode:打开窗口的模式;

'visible':正常的图像显示模式

'invisible':顾名思义该窗口是隐藏区,用于后台记录用,不显示;

'transparent':图像窗口是透明的,不显示图像,但是可以接受鼠标信息,可输出信息;

'buffer':这个模式也是不显示的,显示是需要将结果复制到显示窗口

string machine:计算机名称,默认为空即可


3)将显示内容显示到缓存窗口;

  windowBuffer.SetPart(viewPort.ImagePart.Y,viewPort.ImagePart.X, viewPort.ImagePart.Bottom, viewPort.ImagePart.Right);

SetPart函数比较简单,不在多做介绍。


4)将缓存窗口的可视化结果复制到要显示的窗口中;

 windowBuffer.CopyRectangle(window, 0, 0,hv_WindowHeight-1, hv_WindowWidth-1, 0,  0);

该方法采用缓存窗口的方式防止图像窗口闪烁,避免了采用set_system设置系统级参数导致多窗口显示不理想的问题。

本文网址:
下一篇:没有资料

相关信息:
版权所有 CopyRight 2006-2017 江苏和讯自动化设备有限公司 常州自动化培训中心 电话:0519-85602926 地址:常州市新北区府琛商务广场2号楼1409室
苏ICP备14016686号-2 技术支持:常州山水网络
本站关键词:常州PLC培训 常州PLC编程培训 常州PLC编程 常州PLC培训班 网站地图 网站标签
在线与我们取得联系