Halcon19.11联合C#编程VisualStudio2019Community

一个简单的读取图片并显示的例子

Halcon代码只有三行

dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, 'F:/MeasureGritSize/detection/images/1_3.bmp')
dev_display(Image)

如图

导出

查看导出的文件

接下来运行vs,新建Windows窗体应用 项目

在控件工具箱中鼠标右键-->选择项   添加halcon控件

完成后工具箱中多了halcon的控件

拖动控件到窗口

把halcon导出的类添加到项目。项目右键-->添加现有项目

找到刚才halcon导出的文件,添加之。

 

在vs中打开并修改这个文件,修改结果如下:

-------------------------------------------------------------我是分隔线--------------------------------------------------

 

//

// File generated by HDevelop for HALCON/.NET (C#) Version 19.11.0.0

// Non-ASCII strings in this file are encoded in UTF-8.

//

// Please note that non-ASCII characters in string constants are exported

// as octal codes in order to guarantee that the strings are correctly

// created on all systems, independent on any compiler settings.

//

// Source files with different encoding should not be mixed in one project.

//

#define NO_EXPORT_APP_MAIN   //zhansh添加条件编译语句

using HalconDotNet;

 

public partial class HDevelopExport

{

#if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)

  public HDevelopExport()

  {

    // Default settings used in HDevelop

    HOperatorSet.SetSystem("width", 512);

    HOperatorSet.SetSystem("height", 512);

    if (HalconAPI.isWindows)

      HOperatorSet.SetSystem("use_window_thread","true");

    action();

  }

#endif

 

#if !NO_EXPORT_MAIN

    // Main procedure

    public void action(HTuple hv_WindowHandle)//zhansh  此函数改成 public

    {

        // Local iconic variables

        HObject ho_Image;

 

        // Local control variables

 

        //HTuple hv_WindowHandle = new HTuple();//zhansh 此变量改成函数参数

        // Initialize local and output iconic variables

        /* zhansh 注释掉这些

            HOperatorSet.GenEmptyObj(out ho_Image);

            HOperatorSet.SetWindowAttr("background_color","black");

            HOperatorSet.OpenWindow(0,0,512,512,0,"visible","",out hv_WindowHandle);

            ho_Image.Dispose();

       */

 

        HDevWindowStack.Push(hv_WindowHandle);

        HOperatorSet.ReadImage(out ho_Image, "F:/MeasureGritSize/detection/images/1_3.bmp");

        if (HDevWindowStack.IsOpen())

        {

            HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive());

        }

        ho_Image.Dispose();

 

        hv_WindowHandle.Dispose();

 

    }

 

#endif

 

 

}

#if !(NO_EXPORT_MAIN || NO_EXPORT_APP_MAIN)

public class HDevelopExportApp

{

  static void Main(string[] args)

  {

    new HDevelopExport();

  }

}

#endif

 

 

 

-------------------------------------------------------------我是分隔线--------------------------------------------------

 

回到winfom界面,双击按钮,添加代码如下:

-------------------------------------------------------------我是分隔线--------------------------------------------------

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace WindowsFormsAppWithHalcon

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            HDevelopExport hd = new HDevelopExport();//新建halcon导出程序类的对象

            hd.action(hWindowControl1.HalconWindow);//把halcon显示控件作为实参

        }

    }

}

 

 

-------------------------------------------------------------我是分隔线--------------------------------------------------

 

项目修改为x64 环境

运行程序,点击按钮

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值