开启左侧

显示模板轮廓问题

[复制链接]
343012090 发表于 2019-4-7 09:17:28 | 显示全部楼层 |阅读模式
我在进行图片处理时碰到一个大问题,但是我一直找不到问题出在哪里?第一种情况 是能显示模板匹配找到的轮廓,但是拍照和采集时,hWindowControl1窗口却又不能显示图像,
  1. HOperatorSet.OpenWindow(0, 0, hWindowControl1.Width, hWindowControl1.Height, hWindowControl1.HalconWindow, "", "", out hv_WindowHandle1);
  2. HDevWindowStack.Push(hv_WindowHandle1);//
  3. if (HDevWindowStack.IsOpen())
  4. {
  5.        HOperatorSet.DispObj(ho_Image1, HDevWindowStack.GetActive());
  6. }
  7.        HDevelop.dev_display_shape_matching_results(hv_ModelID1, "lime green", hv_Row, hv_Column,hv_Angle, 1, 1, 0);
复制代码

第二种情况 是图片处理后不能显示模板匹配找到的轮廓,但是采集和拍照hWindowControl1窗口是能正常显示图片的,
  1. HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);
  2. HOperatorSet.SetColor(hWindowControl1.HalconWindow, "red");//
  3. HOperatorSet.DispObj(ho_Cross, hWindowControl1.HalconWindow);
  4. HDevelop.dev_display_shape_matching_results(hv_ModelID1, "lime green", hv_Row, hv_Column,hv_Angle, 1, 1, 0);
复制代码

我在拍照和相机采集的程序中显示图像都是用. HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);这个算子。

我希望在进行图像处理后能显示模板的轮廓,并且不影响拍照和采集的显示。
绝地武士 发表于 2019-4-7 09:50:29 | 显示全部楼层
第一个不显示图形,可能是你每次采集图像都在打开新的图像窗口,而且压入了窗口栈中,获取激活的窗口并不是打开的窗口,你可以只打开一个图像窗口,不要压窗口栈,直接获得最后生成的hv_WindowHadle1为当前窗口句柄,在后面每次采集图像后用这个句柄去显示和匹配模板;
第二个不显示模板轮廓,你查下有没有存在图形被覆盖的情况,感觉你的代码应该没有错的!

楼主如果觉得还是有问题可以把代码打包百度网盘链接私信给我,我帮你看看!
 楼主| 343012090 发表于 2019-4-7 14:44:34 | 显示全部楼层
绝地武士 发表于 2019-4-7 09:50
第一个不显示图形,可能是你每次采集图像都在打开新的图像窗口,而且压入了窗口栈中,获取激活的窗口并不是 ...

请通过好友,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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