设为首页收藏本站
授权版本:2024_07
开启左侧

[C#] 为什么导出的Halcon C#程序没有HD.RunHalcon?

[复制链接]
375823876 发表于 2024-1-29 15:27:06 | 显示全部楼层 |阅读模式
刚刚接触Halcon 看别人的帖子 都是有这个HD.RunHalcon(hWindowControl1.HalconWindow);显示张图片。
为什么我导出的C#程序没有这个RunHalcon这个方法?
  1. public partial class HDevelopExport
  2. {
  3. #if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)
  4.   public HDevelopExport()
  5.   {
  6.     // Default settings used in HDevelop
  7.     HOperatorSet.SetSystem("width", 512);
  8.     HOperatorSet.SetSystem("height", 512);
  9.     if (HalconAPI.isWindows)
  10.       HOperatorSet.SetSystem("use_window_thread","true");
  11.     action();
  12.   }
  13. #endif

  14. #if !NO_EXPORT_MAIN
  15.   // Main procedure
  16.   private void action()
  17.   {
  18.     // Local iconic variables
  19.     HObject ho_Image, ho_ImageGray;

  20.     // Local control variables
  21.     HTuple hv_WindowHandle = new HTuple(), hv_Width = new HTuple();
  22.     HTuple hv_Height = new HTuple();
  23.     // Initialize local and output iconic variables
  24.     HOperatorSet.GenEmptyObj(out ho_Image);
  25.     HOperatorSet.GenEmptyObj(out ho_ImageGray);
  26.     HOperatorSet.SetWindowAttr("background_color","black");
  27.     HOperatorSet.OpenWindow(0,0,512,512,0,"visible","",out hv_WindowHandle);
  28.     HDevWindowStack.Push(hv_WindowHandle);
  29.     ho_Image.Dispose();
  30.     HOperatorSet.ReadImage(out ho_Image, "C:/Users/Administrator/Desktop/视觉Test/二维码/1.PNG");
  31.     if (HDevWindowStack.IsOpen())
  32.     {
  33.       HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());
  34.     }
  35.     hv_Width.Dispose();hv_Height.Dispose();
  36.     HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height);
  37.     ho_ImageGray.Dispose();
  38.     HOperatorSet.Rgb3ToGray(ho_Image, ho_Image, ho_Image, out ho_ImageGray);
  39.     if (HDevWindowStack.IsOpen())
  40.     {
  41.       HOperatorSet.DispObj(ho_ImageGray, HDevWindowStack.GetActive());
  42.     }
  43.     ho_Image.Dispose();
  44.     ho_ImageGray.Dispose();

  45.     hv_WindowHandle.Dispose();
  46.     hv_Width.Dispose();
  47.     hv_Height.Dispose();
  48.   }

  49. #endif

  50. }
  51. #if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)
  52. public class HDevelopExportApp
  53. {
  54.   static void Main(string[] args)
  55.   {
  56.     new HDevelopExport();
  57.   }
  58. }
复制代码


奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
绝地武士 发表于 2024-1-29 15:52:41 | 显示全部楼层
这个是自己封装的方法,传入窗口句柄,内部就可以用窗口句柄.DispObj(图像变量);显示图像了。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 375823876 发表于 2024-1-29 16:23:10 | 显示全部楼层
绝地武士 发表于 2024-1-29 15:52
这个是自己封装的方法,传入窗口句柄,内部就可以用窗口句柄.DispObj(图像变量);显示图像了。 ...

感谢
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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