51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 4438|回复: 5

[待解决] C#对Halcon二次开发出现闪屏问题

[复制链接]

该用户从未签到

1

主题

5

帖子

458

积分

Rank: 2Rank: 2

积分
458
发表于 2017-5-8 18:28:33 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有帐号?会员注册

x
各位大神
使用C#对halcon作二次开发,使用Hwindow 做显示时,如果载入的图像比较大,回出现闪屏现象,请问大家有没有好的解决方法

贴出我的代码,请大家指正
  1.         private void hWindowControlShow_HMouseUp(object sender, HMouseEventArgs e)
  2.         {
  3.             if (e.Button == MouseButtons.Right || hRowBegin == null || hColBegin == null)
  4.             {
  5.                 return;
  6.             }
  7.             if(image == null)
  8.             {
  9.                 return;
  10.             }
  11.             HTuple button;
  12.             HTuple row1, col1, row2, col2;
  13.             try
  14.             {
  15.                 HOperatorSet.GetMposition(hWindowControlShow.HalconWindow, out hRowEnd, out hColEnd, out button);

  16.                 double dbRowMove, dbColMove;
  17.                 double dbRowB, dbColB, dbRowE, dbColE;
  18.                 dbRowB = hRowBegin[0].D;
  19.                 dbRowE = hRowEnd[0].D;
  20.                 dbColB = hColBegin[0].D;
  21.                 dbColE = hColEnd[0].D;
  22.                 dbRowMove = -dbRowE + dbRowB;
  23.                 dbColMove = -dbColE + dbColB;

  24.                 HOperatorSet.GetPart(hWindowControlShow.HalconWindow, out row1, out col1, out row2, out col2);
  25.                 HOperatorSet.SetPart(hWindowControlShow.HalconWindow, row1 + dbRowMove, col1 + dbColMove, row2 + dbRowMove, col2 + dbColMove);
  26.                 HOperatorSet.ClearWindow(hWindowControlShow.HalconWindow);
  27.                 HOperatorSet.DispObj(image, hWindowControlShow.HalconWindow);
  28.             }
  29.             catch (Exception ex)
  30.             {
  31.                 MessageBox.Show("Button Up Fail!", "错误", MessageBoxButtons.OK);
  32.             }
  33.         }
复制代码


1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

该用户从未签到

1

主题

5

帖子

458

积分

Rank: 2Rank: 2

积分
458
 楼主| 发表于 2017-5-9 17:49:58 | 显示全部楼层

RE: C#对Halcon二次开发出现闪屏问题

自己顶以下。

只要在clearwindow 前后添加两个函数就可以了。
  1.         private void hWindowControlShow_HMouseUp(object sender, HMouseEventArgs e)
  2.         {
  3.             if (e.Button == MouseButtons.Right || hRowBegin == null || hColBegin == null)
  4.             {
  5.                 return;
  6.             }
  7.             if(image == null)
  8.             {
  9.                 return;
  10.             }
  11.             HTuple button;
  12.             HTuple row1, col1, row2, col2;
  13.             try
  14.             {
  15.                 HOperatorSet.GetMposition(hWindowControlShow.HalconWindow, out hRowEnd, out hColEnd, out button);

  16.                 double dbRowMove, dbColMove;
  17.                 double dbRowB, dbColB, dbRowE, dbColE;
  18.                 dbRowB = hRowBegin[0].D;
  19.                 dbRowE = hRowEnd[0].D;
  20.                 dbColB = hColBegin[0].D;
  21.                 dbColE = hColEnd[0].D;
  22.                 dbRowMove = -dbRowE + dbRowB;
  23.                 dbColMove = -dbColE + dbColB;

  24.                 HOperatorSet.GetPart(hWindowControlShow.HalconWindow, out row1, out col1, out row2, out col2);
  25.                 HOperatorSet.SetPart(hWindowControlShow.HalconWindow, row1 + dbRowMove, col1 + dbColMove, row2 + dbRowMove, col2 + dbColMove);
  26. <font color="red">
  27. HSystem.SetSystem("flush_graphic", "false");</font>
  28.                 HOperatorSet.ClearWindow(hWindowControlShow.HalconWindow);
  29. <font color="red">HSystem.SetSystem("flush_graphic", "true");</font>
  30.                 HOperatorSet.DispObj(image, hWindowControlShow.HalconWindow);
  31.             }
  32.             catch (Exception ex)
  33.             {
  34.                 MessageBox.Show("Button Up Fail!", "错误", MessageBoxButtons.OK);
  35.             }
  36.         }
复制代码


1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    窃喜
    2020-5-30 09:37
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    65

    帖子

    151

    积分

    Rank: 1

    积分
    151
    发表于 2017-10-23 20:59:29 | 显示全部楼层
    路过 分享 希望以后用得上!

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-3-7 14:29
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    3

    主题

    71

    帖子

    153

    积分

    Rank: 2Rank: 2

    积分
    153
    发表于 2017-11-4 11:25:36 | 显示全部楼层

    新手过来学习学习

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    点赞
    2020-6-11 14:43
  • 签到天数: 91 天

    连续签到: 1 天

    [LV.6]常住居民II

    1

    主题

    22

    帖子

    606

    积分

    Rank: 3

    积分
    606
    发表于 2017-11-29 14:56:13 | 显示全部楼层
    Thanks Looks good

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    建议您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流浏览器浏览本网站

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用

    有问题需要咨询站长?| 申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    CopyRight © 2015-2020 51Halcon机器视觉. Tencent Cloud X3.4.

    快速回复 返回顶部 返回列表