halcon 图像控件显示闪烁问题

halcon图像内容在c#环境下显示多个对象容易出现闪烁现象,对于c#控件我们第一时间想到的是双缓冲,halcon提供了另一个机制来解决这个问题

在显示图像开始时候禁用图像显示刷新

HSystem::SetSystem("flush_graphic", "false");

在对象加载完成后,打开刷新,然后显示一个看不见的对象

HSystem::SetSystem("flush_graphic", "true");
SetColor(winID, data->backgroundColor);
DispLine(winID, -100.0, -100.0, -101.0, -101.0);

以上代码其实是c++代码,为了实现halcon对象的显示和滚动缩放等效果,通过cli代理,将c#内的halcon图像对象及文字等转化到c++中,由于c++的hobject对象赋值"="操作并非深度复制,且内部动态管理内存,这样将c#中的hobject对象转化到c++中的对象列表来显示及刷新操作,避免了c#对halcon图像对象的内存管理不力导致内存爆炸等问题.

专注机器视觉,halcon c# c++联合开发
原文地址:https://www.cnblogs.com/linyugang/p/9138943.html