|
51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!
您需要 登录 才可以下载或查看,没有帐号?会员注册
x
Halcon测试代码如下:
- dev_get_window (WindowHandle)
- read_object_model_3d ('bmc_mini', 'mm', [], [], ObjectModel3D, Status)
- visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], [], [], [], [], [], PoseOut)
复制代码
导出到C#中运行,始终不显示图像(Halcon12中是完全没有问题的)
通过变量检测可以看到ho_ImageDump变量是有图的,但是就是显示不出来,在continue按钮出现的大概黑色附近点击,还是可以显示最后的图像(才刷新)。
所以,笔者认为这个地方可能出现了图像刷新的堵塞,所以我们尝试加入主程序主线程刷新消息看看。
添加下面代码:
- System.Windows.Forms.Application.DoEvents();
复制代码
在主程序visualize_object_model_3d函数里面找到并添加如下:
- dump_image_output(ho_Image, hv_WindowHandleBuffer, hv_Scene3D, hv_AlphaOrig,
- hv_ObjectModel3D, hv_GenParamName_COPY_INP_TMP, hv_GenParamValue_COPY_INP_TMP,
- hv_CamParam_COPY_INP_TMP, hv_Poses, hv_ColorImage, hv_Title, hv_Information,
- hv_Label_COPY_INP_TMP, hv_VisualizeTB, "true", hv_TrackballCenterRow,
- hv_TrackballCenterCol, hv_TBSize, hv_SelectedObject, hv_WindowCenteredRotation,
- hv_TBCenter);
- ho_ImageDump.Dispose();
- HOperatorSet.DumpWindowImage(out ho_ImageDump, hv_WindowHandleBuffer);
- HDevWindowStack.SetActive(hv_WindowHandle);
- if (HDevWindowStack.IsOpen())
- {
- HOperatorSet.DispObj(ho_ImageDump, hv_WindowHandle);
- System.Windows.Forms.Application.DoEvents();
- }
复制代码
初步测试已经可以了,就是消息所在的位置导致可能会出现卡顿情况,尝试几个while地方都加上应该会好些。
暂时先这样吧。
接下来,我们再继续研究看看高版本是否还有其他解决方式。 |
|