C#和halcon联合开发初步测试

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);

        }

    }

}

  • 效果展示

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值