C#学习笔记——(28)C#与halcon联合编程

参考文章
https://blog.csdn.net/ruotianxia/article/details/81638552
https://blog.csdn.net/daybreak___/article/details/82822090

在图像处理方面,halcon比较方便,不需要自己写太多的代码,也有例程可以学习,所以就想要尝试一下将halcon的程序导出后用在基于C#的上位机中。
软件版本为:Windows10 + VS2015 + Halcon 12

1. 配置环境

这一步不太确定是否需要,有些文章中没有介绍,但是在一篇文章中看到需要配置环境(参考文章第一篇),所以也就做了,以防后期出错。
此电脑–属性–高级系统设置–环境变量–系统环境新建
在这里插入图片描述
在这里插入图片描述

2. halcon程序导出

在这里插入图片描述

3. 添加halcon控件

(1)新建窗体
(2)工具箱 ——所有Windows窗体右键——选择项——浏览——halcon安装目录 C:\Program Files\MVTec\HALCON-12.0\bin\dotnet35\ ——找到halcondotnet.dll ——添加即可
(3)在工具箱中就可以看到 HWindowControl 控件
在这里插入图片描述

4. 添加halcon引用

(1)将halcon安装路径bin目录下:\dotnet35\ halcondotnet.dll 和\x64-win64\ halcon.dll 两个文件复制到VS文件bin目录的Debug文件夹中。
在这里插入图片描述
(2)解决方案资源管理器——引用——添加引用——选择Debug文件中的halcondotnet.dll添加即可。

5. 程序示例

(1)拖动控件如下,黑色的是halcon控件
在这里插入图片描述
(2)新建一个类,将halcon导出的程序复制到新建的类中,红框中即halcon导出的程序。要记得添加引用using HalconDotNet;
在这里插入图片描述
ps. 也可以直接放到Form1.cs中,注意放到public partial class Form1 : Form 后面
在这里插入图片描述
(3)对button进行编程

//这两句是必须的
HDevelopExport HD = new HDevelopExport();
HD.RunHalcon(hWindowControl1.HalconWindow);
//这两句是基于实验的内容所加,根据划痕面积划分为两类,将两类数量进行文本显示
textBox1.Text = HD.i.ToString();
textBox2.Text = HD.j.ToString();

(4)补充:
因为还需要根据划痕面积将划痕分为两类,并将两类划痕的数量进行文本显示,所以在halcon导出的程序中还需要添加以下内容,然后在button程序中添加(3)中的语句即可。
(参考文章第二篇,hv_Ox, hv_Oy 的使用)
在这里插入图片描述
在这里插入图片描述

6. 结果

在这里插入图片描述

7. 可能出错的地方

(1)要将halcondotnet.dllhalcon.dll放到C#程序的Debug下面,之前只放在bin下面,程序会出错;
(2)平台选择Any CPU(在很多文章中介绍选x64,但是自己实验时选择Any CPU才可以成功),所以如果出错,可以尝试更改一下平台;
(3)框架:自己是 .Net Framework 4.5.2,但是看到有博主讲要.Net Framework 4 才可以运行成功,这里也不是很懂,不过出错时也可以考虑一下是否框架版本过高,更换一下框架。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HalconC#可以通过Halcon/.NET接口进行联合编程Halcon/.NET接口是一个提供给C#开发人员的软件开发工具包,它允许您在C#中调用Halcon的图像处理功能。 要进行HalconC#联合编程,您需要完成以下步骤: 1. 安装HalconHalcon/.NET接口:首先,您需要安装Halcon的开发版,并确保在安装过程中选择安装Halcon/.NET接口。 2. 创建C#项目:在Visual Studio或其他C#开发环境中创建一个新的C#项目。 3. 引用Halcon/.NET接口:在C#项目中,右键点击“引用”并选择“添加引用”。浏览到Halcon安装目录下的"Halcon.NET.dll"文件,并添加该引用。 4. 编写C#代码:在C#项目中,您可以使用Halcon/.NET接口提供的类和方法来调用Halcon的图像处理功能。例如,您可以使用HImage类来加载和处理图像,使用HOperatorSet类来调用Halcon的算法函数。 以下是一个简单的示例代码,演示如何在C#中使用Halcon/.NET接口加载和显示图像: ```csharp using HalconDotNet; class Program { static void Main(string[] args) { // 初始化Halcon HOperatorSet.SetSystem("border_shape_models", "true"); // 创建Halcon图像对象 HImage image = new HImage(); // 加载图像 image.ReadImage("path/to/your/image.jpg"); // 显示图像 HWindow window = new HWindow(); window.SetPart(0, 0, -1, -1); window.DispImage(image); // 等待用户按下任意键退出 Console.WriteLine("Press any key to exit..."); Console.ReadKey(); // 释放资源 image.Dispose(); window.Dispose(); } } ``` 通过这种方式,您可以在C#中使用Halcon的强大图像处理功能,并与其他C#代码进行集成和扩展。请参考Halcon/.NET接口的文档和示例代码,以了解更多关于HalconC#联合编程的细节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值