Halcon视觉之家-51Halcon专注于机器视觉技术

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 350|回复: 3

[已解决] DispObj问题

[复制链接]
  • TA的每日心情
    开心
    2022-5-3 06:07
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    18

    主题

    34

    帖子

    89

    积分

    Rank: 1

    积分
    89
    发表于 2022-3-2 09:51:19 | 显示全部楼层 |阅读模式

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

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

    x
    本帖最后由 李明 于 2022-3-2 15:39 编辑

    在C++中的代码:
    1. HObject  ho_Circle, ho_Circle1, ho_RegionDifference;
    2. HTuple  hv_WindowHandle;
    3. SetWindowAttr("background_color","black");
    4. OpenWindow(10,10,400,400,0,"visible","",&hv_WindowHandle);
    5. HDevWindowStack::Push(hv_WindowHandle);

    6. GenCircle(&ho_Circle, 200, 200, 30);
    7. GenCircle(&ho_Circle1, 200, 200, 100);

    8. Difference(ho_Circle1, ho_Circle, &ho_RegionDifference);

    9. if (HDevWindowStack::IsOpen())
    10.       DispObj(ho_RegionDifference, HDevWindowStack::GetActive());
    复制代码

    我的问题 :ho_RegionDifference区域在窗口中没有显示  ??

  • TA的每日心情
    开心
    前天 10:44
  • 签到天数: 942 天

    连续签到: 1 天

    [LV.10]以坛为家III

    224

    主题

    1038

    帖子

    6579

    积分

    Rank: 9

    积分
    6579

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2022-3-2 10:24:47 | 显示全部楼层
    如果你要使用它自带的窗口栈(HDevWindowStack)管理窗口,那么程序里面使用,你显示任何图形之前都是需要显式激活窗口(HDevWindowStack::SetActive(hv_WindowHandle) )。否则HDevWindowStack::GetActive()这句代码无法获取你当前有效的窗口,无法显示图形。

    我的建议是,你把窗口句柄保存下来,直接使用,去掉以下这种频繁切换窗口的代码(这种适合于HDevelop里面使用):
    HDevWindowStack::Push(hv_WindowHandle);
    if (HDevWindowStack::IsOpen())
    HDevWindowStack::GetActive() 把这个换成直接换成窗口句柄
  • TA的每日心情
    开心
    2022-5-3 06:07
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    18

    主题

    34

    帖子

    89

    积分

    Rank: 1

    积分
    89
     楼主| 发表于 2022-3-2 14:32:13 | 显示全部楼层
    本帖最后由 李明 于 2022-3-2 14:34 编辑
    1.     HObject  ho_Circle, ho_Circle1, ho_RegionDifference;
    2.     HTuple  hv_WindowHandle;
    3.     SetWindowAttr("background_color","black");
    4.     OpenWindow(10,10,400,400,0,"visible","",&hv_WindowHandle);

    5.     GenCircle(&ho_Circle, 200, 200, 30);
    6.     GenCircle(&ho_Circle1, 200, 200, 100);

    7.     Difference(ho_Circle1, ho_Circle, &ho_RegionDifference);

    8.     DispObj(ho_RegionDifference, hv_WindowHandle);
    复制代码


    这样窗口中还是没有显示区域  ??注意在halcon中可以显示,在C++中(qt5)中没有显示   ?
  • TA的每日心情
    开心
    昨天 09:51
  • 签到天数: 1433 天

    连续签到: 37 天

    [LV.10]以坛为家III

    428

    主题

    1816

    帖子

    7449

    积分

    Rank: 9

    积分
    7449

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

    发表于 2022-3-3 09:07:04 | 显示全部楼层
    李明 发表于 2022-3-2 14:32
    这样窗口中还是没有显示区域  ??注意在halcon中可以显示,在C++中(qt5)中没有显示   ?
    ...

    默认窗口是有很多属性没有设置,包括缓存大小,你可以先读取一张大图,然后设置颜色就可以了。
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
    您需要登录后才可以回帖 登录 | 会员注册

    本版积分规则

    视觉培训招生

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

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

    算子查询| 申请友链| 小黑屋| 手机版| Archiver| 邮件支持|

    © 2015-2021 51Halcon机器视觉  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

    本站已安全运行:

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