设为首页收藏本站 距【华南国际工业博览会】宝安新馆开幕 : :

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

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 1026|回复: 5

[资料] Halcon20.05导出visualize_object_model_3d无法刷新3d图像(一片黑)?

[复制链接]
  • TA的每日心情
    开心
    昨天 11:19
  • 签到天数: 1188 天

    连续签到: 1 天

    [LV.10]以坛为家III

    411

    主题

    1692

    帖子

    5733

    积分

    Rank: 9

    积分
    5733

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

    发表于 2020-7-3 15:08:16 | 显示全部楼层 |阅读模式

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

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

    x
    Halcon测试代码如下:
    1. dev_get_window (WindowHandle)
    2. read_object_model_3d ('bmc_mini', 'mm', [], [], ObjectModel3D, Status)
    3. visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], [], [], [], [], [], PoseOut)
    复制代码

    导出到C#中运行,始终不显示图像(Halcon12中是完全没有问题的)
    微信截图_20200703150223.png
    通过变量检测可以看到ho_ImageDump变量是有图的,但是就是显示不出来,在continue按钮出现的大概黑色附近点击,还是可以显示最后的图像(才刷新)。
    所以,笔者认为这个地方可能出现了图像刷新的堵塞,所以我们尝试加入主程序主线程刷新消息看看。
    添加下面代码:
    1. System.Windows.Forms.Application.DoEvents();
    复制代码

    在主程序visualize_object_model_3d函数里面找到并添加如下:
    1. dump_image_output(ho_Image, hv_WindowHandleBuffer, hv_Scene3D, hv_AlphaOrig,
    2.     hv_ObjectModel3D, hv_GenParamName_COPY_INP_TMP, hv_GenParamValue_COPY_INP_TMP,
    3.     hv_CamParam_COPY_INP_TMP, hv_Poses, hv_ColorImage, hv_Title, hv_Information,
    4.     hv_Label_COPY_INP_TMP, hv_VisualizeTB, "true", hv_TrackballCenterRow,
    5.     hv_TrackballCenterCol, hv_TBSize, hv_SelectedObject, hv_WindowCenteredRotation,
    6.     hv_TBCenter);
    7. ho_ImageDump.Dispose();
    8. HOperatorSet.DumpWindowImage(out ho_ImageDump, hv_WindowHandleBuffer);
    9. HDevWindowStack.SetActive(hv_WindowHandle);
    10. if (HDevWindowStack.IsOpen())
    11. {
    12.     HOperatorSet.DispObj(ho_ImageDump, hv_WindowHandle);
    13.     System.Windows.Forms.Application.DoEvents();
    14. }
    复制代码

    初步测试已经可以了,就是消息所在的位置导致可能会出现卡顿情况,尝试几个while地方都加上应该会好些。
    微信截图_20200703150639.png
    暂时先这样吧。
    接下来,我们再继续研究看看高版本是否还有其他解决方式。
    解决方法一:尝试导出Halcon后,初始化让halcon使用windows线程机制!
    1. set_system('use_window_thread','true')
    复制代码

    =================华丽的分割线==========================
    后面重新用19.05测试了下,其实阻塞在主线程处理主线程消息也会导致卡顿,甚至可能导致无法响应鼠标消息。
    最好的解决办法:让visualize_object_model_3d 算子运行在子线程中!
    visualize_object_model_3d算子自带例子(修改了下窗口句柄是获取不是打开新的窗口):
    1. dev_get_window (WindowHandle)
    2. read_object_model_3d ('pipe_joint', 'm', [], [], ObjectModel3D1, Status)
    3. read_object_model_3d ('clamp_sloped', 'mm', [], [], ObjectModel3D2, Status)
    4. gen_cam_par_area_scan_division (0.016, 0, 5e-6, 5e-6, 320, 240, 640, 480, CamParam)
    5. get_cam_par_data (CamParam, 'image_width', Width)
    6. get_cam_par_data (CamParam, 'image_height', Height)
    7. create_pose (-0.02, 0.01, .6, 110, 5, 320, 'Rp+T', 'gba', 'point', Pose1)
    8. create_pose (0.01, 0.03, .6, 130, 315, 340, 'Rp+T', 'gba', 'point', Pose2)
    9. visualize_object_model_3d (WindowHandle, [ObjectModel3D1, ObjectModel3D2], \
    10.                            CamParam, [Pose1, Pose2], \
    11.                            ['alpha', 'color_0', 'color_1', 'disp_pose'], \
    12.                            [0.5,     'orange',  'yellow',  'true'], \
    13.                            ['3D visualization demo'], ['pipe joint', 'clamp'], \
    14.                            ['Use mouse to change view'], PoseOut)
    复制代码

    导出为C#函数,然后新建winform工程并在界面添加HWindowControl控件,并在Form1添加代码:
    1. private void Form1_Load(object sender, EventArgs e)
    2.         {
    3.             HDevWindowStack.Push(this.hWindowControl1.HalconWindow);
    4.             HDevWindowStack.SetActive(this.hWindowControl1.HalconWindow);
    5.             Thread th = new Thread(HalconProc);
    6.             th.IsBackground = true;
    7.             th.Start();
    8.         }
    9.         
    10.         private void HalconProc()
    11.         {
    12.             HDevelopExport hal = new HDevelopExport();
    13.         }
    复制代码

    记得顶部引用命名空间:using HalconDotNet;
    编译测试,功能完全正常!
    微信截图_20210416195327.jpg

    如果鼠标不在图像控件区域内则会引发异常,这是正常的:
    1. 引发的异常:“HalconDotNet.HOperatorException”(位于 halcondotnet.dll 中)
    复制代码


    测试代码:
    WindowsFormsApplication1.rar (42.39 KB, 下载次数: 13)
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系
  • TA的每日心情
    奋斗
    昨天 09:55
  • 签到天数: 412 天

    连续签到: 13 天

    [LV.9]以坛为家II

    0

    主题

    94

    帖子

    550

    积分

    Rank: 3

    积分
    550

    切换助手验证会员

    发表于 2020-7-4 17:28:37 | 显示全部楼层
    大佬牛逼,,,,,

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

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

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

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

  • TA的每日心情

    2021-6-1 08:15
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    1

    主题

    11

    帖子

    28

    积分

    Rank: 1

    积分
    28
    发表于 2020-9-8 09:32:00 | 显示全部楼层
    halcon3d读取并显示,c#代码

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

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

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

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

  • TA的每日心情

    2021-1-24 19:22
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    0

    主题

    60

    帖子

    90

    积分

    Rank: 1

    积分
    90

    切换助手验证会员

    发表于 2021-1-24 19:47:48 | 显示全部楼层
    大神威武

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

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

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

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

  • TA的每日心情

    2021-5-26 20:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    21

    帖子

    30

    积分

    Rank: 1

    积分
    30
    发表于 2021-4-15 20:28:55 | 显示全部楼层
    niu  niu niu

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

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

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

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

    该用户从未签到

    0

    主题

    3

    帖子

    14

    积分

    Rank: 1

    积分
    14
    发表于 2021-6-29 11:17:39 | 显示全部楼层
    太厲害了 馬上來試試看 感謝

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

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

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

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

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

    本版积分规则

    视觉培训招生

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

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

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

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

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