C#与Halcon联合编程(1)显示图像

时间:2024-04-08 16:59:14

C#与Halcon联合编程(1)显示图像

C#与Halcon联合编程第一步就是调用Halcon图像处理数据库,是否调用成功,通常是利用Halcon的图像显示控件能否正确显示图像进行判断。下面就简单介绍一下如何利用C#调用Halcon图像显示控件来显示图像。
1.创建C#项目,创建一个Windows窗体应用程序。

C#与Halcon联合编程(1)显示图像
2.在项目中引用Halcon的DLL文件。鼠标右键单击“引用”–“添加引用”,如下图:
C#与Halcon联合编程(1)显示图像
在弹出的引用管理器中点击下方的“浏览”按钮。选择Halcon安装目录下的halcondotnet.dll文件,点击添加–确定。本文以halcon12为例子,如下图:
C#与Halcon联合编程(1)显示图像
引用成功后halcondotnet会出现在引用项目里。C#与Halcon联合编程(1)显示图像

3.添加halcon图像显示控件。在Visual Studio左侧点击“工具箱”,在空白区域点击鼠标右键,选择“选择项”。在".NET Framework组件“这一页中点击”浏览“按钮,同样添加刚刚引用的那个halcondotnet.dll文件。
C#与Halcon联合编程(1)显示图像
添加成功后,在常规一类中会出现HWindowControl这个控件。如下图。
C#与Halcon联合编程(1)显示图像
将该控件添加到界面上。如下图:
C#与Halcon联合编程(1)显示图像
查看添加的这个HWindowControl控件的属性可以看到控件的名称为hWindowControl1,这个名称在程序中会用到。如下图:
C#与Halcon联合编程(1)显示图像
4.在程序中进行图像的显示。添加的语句都有注释。

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;
using HalconDotNet;//添加这一句

namespace HalconWindows
{
    public partial class Form1 : Form
    {
        HWindow win = null;//定义一个Halcon窗口对象
        HImage image = null;//定义一个Halcon图像变量
        public Form1()
        {
            //win = hWindowControl1.HalconWindow;这句放在InitializeComponent()函数前执行会报错
            InitializeComponent();
            
            win = hWindowControl1.HalconWindow;//将Halcon窗口对象与控件进行关联
            image = new HImage();//实例化图像变量
            image.ReadImage(@"e:\rmb.png");//读取图像
            int width = 0, height = 0;//创建变量用于接收图像尺寸
            image.GetImageSize(out width, out height);//获取图像尺寸
            win.SetPart(0, 0, height - 1, width - 1);//设置Halcon控件中图像的显示尺寸
            win.DispObj(image);//显示图像
        }
    }
}

此外,在引用dll文件后,可能在运行的时候会报错,可以尝试修改一下项目的框架版本。具体位置:鼠标右键单击项目文件—属性—应用程序----目标框架