C#联合halcon的课堂笔记
2024/8/19
前期准备
- 创建一个新的c#工程文件,选择项目模板,记住工程文件路径,如下图。
- 将halcon的dll文件导入C#库中,让C#可以调用,具体步骤如下图。
打开刚刚创建好的工程,如下图方框所示,右键打开文件所在位置。
- 打开文件所在位置后,找到并打开bin文件夹,进入debug文件中。
如果之前没用运行过工程,debug文应该为空,如果运行过则会有对应的exe文件。
- 找到halcon所在的文件夹,找halcon.dll文件后,返回上级目录打开dotnet35文件夹,将除了config文件全部复制。
将文件复制粘贴至桌面文件夹,方便后续读取。
- 将所有halcon文件夹复制到c#工程文件bin\debug文件夹中(步骤1)。
- 打开C#工程,在管理器中的引用右击,打开选择路径,将刚才复制的文件导入。
为导入halcon视频窗口,方便后续创建,找到halcondotnet.dll文件,拖入工具箱中,会生成两个窗口组件。
验证联合开发可行性
- 设计简单的UI界面
注意:要选择HWindowControl窗口
下面本次验证的窗口以及按钮的组件名
窗口,更改的部分用红框标明,方便以后多窗口的区分。
按钮,更改的部分用红框标明,可以自己起名,后续调用的时候保持一致就好,上面的窗口同理。
- 源码部分
using HalconDotNet;
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 _20240819homework
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//定义一个图片变量
HObject ho_image;
private void button_readImage_Click(object sender, EventArgs e)
{
//实例化
OpenFileDialog openFileDialog = new OpenFileDialog();
//写一个判断语句,如果返回值为真,则读取图片以及图片路径
if(openFileDialog.ShowDialog() == DialogResult.OK)
{
HOperatorSet.ReadImage(out ho_image,openFileDialog.FileName);
}
//设置图片的宽与高的变量
HTuple width, height;
HWindowControl.HalconWindow------c窗体句柄
HOperatorSet.GetImageSize(ho_image, out width, out height);
HOperatorSet.SetPart(hWindowControl_first.HalconWindow,0,0,height-1,width-1);
//窗口展示
HOperatorSet.DispObj(ho_image, hWindowControl_first.HalconWindow);
}
}
}
- 效果展示