c#与halcon环境配置,导出算法库,使用halcon环境编程

article/2025/6/19 5:59:51

目录

1. C#配置halcon运行环境

2.导出halcon算法库

3.使用方法


记录下C#配置halcon环境的方法,以及halcon导出库的使用方法。

1. C#配置halcon运行环境

VS版本: vs2019

halcon版本:  20.11

创建c#工程,点击“创建新项目”,在搜索窗口中输入“.Net”,选择"Windows 窗口应用(.NET。Framework)

输入项目名称,保存路径,.NET framework框架

修改目标平台配置,右键项目名称->属性

把取消 勾选32位

右键项目名,生成Debug文件

将halcon目录下的3个dll,如下图

复制到Debug路径下

添加库halcondotnet.dll,路径位于Debug目录

点击浏览

选中halcondotnet.dll,点击添加

勾选halcondotnet.dll,点击确定

找到右方工具箱,下方随便找个位置右键->选择项

点击浏览,加载halcon库文件

点击确定后,完成2个窗口控件的添加

拖动 HWindowControl控件到中间主界面上,同时添加一个button按键

按F5测试生成执行文件是否成功。

2.导出halcon算法库

只有halcon18.11以上版本才支持导出C#的库文件,halcon17.12只支持C++

比如我们随便写一段测试代码,将处理部分封装成本地函数。

导出库工程

导出界面选择C#

导出文件:

res_My_Test目录下存放的hdev文件

source目录下存放的c#文件

3.使用方法

把res_My_Test放入Debug目录下

source中的My_Test.cs文件直接拖到工程中

报错信息,需要添加engine的dll

右键引用,添加

其他需要添加的dll

以上配置都OK后,我们开始使用库的方法:

在代码内部,调用Debug目录下的halcon文件,我在使用,或者需要修改代码时,直接对halcon代码修改,不用再次导出c#文件。

C#控件button下的代码:

        private void button1_Click(object sender, EventArgs e){HTuple area = new HTuple();HTuple row = new HTuple();HTuple column = new HTuple();string image_path = "printer_chip_01.png";HImage img  = new HImage();img.ReadImage(image_path);int width,  height;img.GetImageSize(out width, out height);// Console.WriteLine("图像宽度: " + width + ", 高度: " + height);hWindowControl1.HalconWindow.SetPart(0, 0, height - 1, width - 1);hWindowControl1.HalconWindow.DispObj(img);MYTEST.My_Test.process_img(img, out area, out row, out column);hWindowControl1.HalconWindow.SetColor("red");hWindowControl1.HalconWindow.SetLineWidth(3);   HXLDCont hxld = new HXLDCont();hxld.GenCrossContourXld(row.D, column.D, 156.0, 0.785398);hxld.DispObj(hWindowControl1.HalconWindow);}

先看看当前运行效果,在最大面积的目标上显示十字叉。

halcon中的代码:

下面我们之间修改F:\code_test\halcon_test\bin\Debug\res_My_Test目录下的test_file1.hdev文件

修改处理算法,添加排序:

运行C#工程效果:

总结:

通过导出库的方法,直接在halcon源码上修改,不用再次导出c#代码集成。


http://www.hkcw.cn/article/iEbKEuuwal.shtml

相关文章

tomcat yum安装

使用yum安装 yum install -y java-1.7.0-openjdk* tomcat* --disablerepoepel## java-1.7.0-openjdk* 注意:最终安装的是java-1.8.0版本## --disablerepoepel 禁用:EPEL源,防止版本冲突 java -version (2) 启停:Tomcat 7 s…

时间的基本概念与相关技术三

1.5 守时技术 所谓守时(time keeping)是指一个时频系统(包括频标和分频钟)对时间信号和时间信息的保持。频率标准(简称频标)的频率准确度、频率稳定度和守时系统的环境条件是决定守时能力的三个关键因素。…

云原生安全基石:Kubernetes 核心概念与安全实践指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. Kubernetes 架构全景 Kubernetes(简称 K8s)采用主从架构,由控制平面(Control Plane&…

【python】uv管理器

uv是一个速度极快的 Python 包和项目管理器,用 Rust 编写。 安装 安装uv之前,确保你的电脑不需要安装了python 在Windows下,可以使用官方的脚本直接安装 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.…

2021 年 12 月大学英语四级考试真题(第 1 2 3 套)——解析版——篇章题

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 &…

【Linux】mmap文件内存映射

📝前言: 这篇文章我们来讲讲Linux——mmap mmap介绍mmap接口介绍mmap使用示例 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记&a…

深度学习驱动的超高清图修复技术——综述

Deep Learning-Driven Ultra-High-Definition Image Restoration: A Survey Liyan Wang, Weixiang Zhou, Cong Wang, Kin-Man Lam, Zhixun Su, Jinshan Pan Abstract Ultra-high-definition (UHD) image restoration​​ aims to specifically solve the problem of ​​quali…

【Docker系列】Docker 容器内安装`ps`命令

博客目录 一、为什么需要在 Docker 容器中安装ps命令二、不同 Linux 发行版的安装方法1. Alpine Linux 镜像的安装方法2. Debian/Ubuntu 镜像的安装方法3. CentOS/RHEL 镜像的安装方法 三、验证安装与基本使用四、永久解决方案:修改 Dockerfile1. Alpine 基础镜像的…

【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践

再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践 我是一台N25-3.82/390型汽轮机,心脏在5500转/分的轰鸣中跳动。垃圾焚烧炉是我的胃,将人类遗弃的残渣转化为金色蒸汽,沿管道涌入我的胸腔。 清晨&#x…

对蚁群算法的理解和实例详解

目录 一、算法概述 二、实例详解 1)问题分析 2)初始化参数 2)设置蚂蚁初始位置 3)选择路径 4)记录本次最佳路径 5)更新信息素 6)清空禁忌表 三、计算结果 四、总结 一、算法概述 一群…

【PowerPoint专栏】PowerPoint的保存选项

在PowerPoint的保存选项中有非常多的可用选项,保存的类型也非常多。 在PowerPoint中的工具选项中同样有一些相关的菜单操作帮助用户完成一些特殊操作。 在

直击2025粤港澳大湾区车展 科技引领未来车展

5月31日,第二十九届粤港澳大湾区车展在深圳国际会展中心(宝安)拉开帷幕。本届车展延续“面向科技、面向未来、面向市场”的主题,以“科技Alpha车展”为核心方向,探索汽车前沿科技。展会规模超过26万平方米,有超8万平方米的户外活动体验区及试驾专区。车展期间,全球近百家…

新王加冕!巴黎5比0国米首夺欧冠 年轻风暴席卷欧洲

北京时间6月1日凌晨,2024至2025赛季欧冠联赛决赛在德国慕尼黑安联球场进行。经过90分钟的激战,法甲巴黎圣日耳曼队以5比0大胜意甲国际米兰队,夺得队史首座“大耳朵杯”。此前的淘汰赛中,“大巴黎”先后淘汰了利物浦队、阿斯顿维拉队和阿森纳队三支英超劲旅。而国米则在半决…

定制一款国密浏览器(13):预置国密根证书到浏览器

由于国密算法没有得到国外的认可,所以 Chromium、Firefox 等浏览器均不支持国密算法。即使我们修改了 Chromium 的源码,增加了国密算法的支持,但还不能在浏览器中正常使用。因为这涉及到证书的信任问题,国密证书都是国内厂商签发的,国密根证书并没有集成到系统和浏览器中。…

新闻数据加载(鸿蒙App开发实战)

本案例基于ArkTS的声明式开发范式,介绍了数据请求和onTouch事件的使用。包含以下功能: 数据请求。列表下拉刷新。列表上拉加载。 网络数据请求需要权限:ohos.permission.INTERNET 一、案例效果截图 操作说明: 点击应用进入主页…

Baklib企业CMS全流程管控与智能协作

企业CMS全流程管控方案解析 现代企业内容管理中,全流程管控的实现依赖于对生产、审核、发布及迭代环节的系统化整合。通过动态发布引擎与元数据智能标记技术,系统可自动匹配内容与目标场景,实现标准化模板驱动的快速部署。针对多分支机构的复…

当前用户的Git全局配置情况:git config --global --list

通过config命令可以查询当前用户的全局配置情况。这些配置项定义了 Git 在全局范围内的行为,包括如何处理大文件、SSL 证书验证以及提交时的用户信息。 git config --global --list http.sslVerifyfalse 这个配置项禁用了 SSL 证书验证。这在与自签名证书的 Git 服…

编辑器之神 Vim

终于到了主包最期待的环节了 简单介绍 这是linux中最能装逼的一个环节 服务器哪有界面版的,都是纯粹的命令行 这个时候操作就比较复杂,需要使用一些另类的编辑器 介绍几个编辑器吧 vi nano emacs vim,这些都是命令版的编辑器,基…

任务19:实现山东省气温预测

任务描述 知识点: 时间序列分析 重 点: 指数平滑法ARIMA模型Python连接数据库,查询数据 内 容: 读取并创建时序数据使用指数平滑法建立模型,并预测下一年山东省各月的平均气温使用ARIMA建立模型,并…

C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件

文章目录 前言 一、什么是STL 二、STL的版本 1、原始版本 2、P.J.版本 3、RW版本 4、SGI版本 三、闭源、开源 四、STL的六大组件 总结 前言 路漫漫其修远兮,吾将上下而求索; 一、什么是STL STL(standard template libaray 标准模板库)&#…