Halcon WPF 开发学习笔记(2):Halcon导出c#脚本和WPF初步开发

文章目录

  • 前言
  • Halcon+C#教学
  • 简单说明如何二开机器视觉
    • 如何二次开发Halcon
      • 导出Halcon脚本
      • 新建WPF项目,导入Halcon脚本和Halcon命名空间

前言

我目前搜了一下我了解的机器视觉软件,有如下特点

优点缺点兼容性教学视频(B站前三播放量)
OpenCV开源,免费,因为有源码所以适合二次开发学习成本极高,卡学历。研究生博士起步底层使用C++,可以使用Python或者C#调DLL300w/95w/60w
Halcon商用,功能全面,已经训练好了算子(就是第三方接口)认证成本高,正版需要1.1W美元支持C,C++,C#。30w/25w/20w
VisionPro商用,比Halcon便宜一些,简单点性能差点,功能差点C++,C#25w/25w/20w
VisonMaster海康威视开发,加密狗最便宜,低代码开发不了解C++,C#7w/5w/2w

VisionPro和Halcon 的详细对比

简单来说,OpenCV开发用,商用就Halcon/VisionPro/VisionMaster。由于教学视频的原因,我们排除教学视频和外企不用的VisionMaster。然后就是Halcon和VisionPro的选择了。

两个的区别就是Halcon功能全,VisionPro便宜简单。我这里选择Halcon,还有一点就是Halcon继承C#的比较多。

Halcon+C#教学

架构师带你C#联合halcon编程系列

WPF/HALCON机器视觉合集

C#与 Halcon 联合编程

简单说明如何二开机器视觉

我听说目前有两种方法

优点缺点
先开发好脚本,直接调用算法和业务完全分离灵活性不足
直接调用算法库十分灵活没有算法官方平台开发方便

如果是二次开发,那么直接用C/C++是最好的,因为底层代码都是C/C++写的,理论上最优解为QT。但是由于C/C++ 极高的学习成本和开发成本。C#/Python去调用DLL也是个不错的方式。Python(我个人不喜欢他的语法)主要用于研究,C# 有Winfrom/WPF 界面,自身的生态,是最适合用来做快速二次开发的载体

如何二次开发Halcon

首先,现在Halcon开发平台上将代码调试成功,简单来说就是得到一个图像识别的Halcon脚本。什么脚本都可以

我们这里使用的是我们上期视频添加的脚本

Halcon WPF 开发学习笔记(1):Hello World小程序

我们得到一个可以标记特殊点位的Halcon脚本

在这里插入图片描述

导出Halcon脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

新建WPF项目,导入Halcon脚本和Halcon命名空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/140903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 组件化编程 和 生命周期

目录 一、组件化编程 1.基本介绍 : 2.原理示意图 : 3.全局组件示例 : 4.局部组件示例 : 5.全局组件和局部组件的区别 : 二、生命周期 1.基本介绍 : 2.生命周期示意图 : 3.实例测试 : 一、组件化编程 1.基本介绍 : (1) 开发大型应用的时候,页面往往划分成…

Flink之Java Table API的使用

Java Table API的使用 使用Java Table API开发添加依赖创建表环境创建表查询表输出表使用示例 表和流的转换流DataStream转换成表Table表Table转换成流DataStream示例数据类型 自定义函数UDF标量函数表函数聚合函数表聚合函数 API方法汇总基本方法列操作聚合操作Joins合并操作排…

智能优化算法(一):伪随机数的产生

文章目录 1.伪随机数介绍1.1.伪随机产生的意义1.2.伪随机产生的过程 2.产生U(0,1)的乘除同余法2.1.原始的乘同余法2.2.改进的乘同余法 3.产生正态分布的伪随机数4.基于逆变法产生伪随机数 1.伪随机数介绍 1.1.伪随机产生的意义 1.随机数的产生是进行随机优化的第一步也是最重要…

Qt QTableWidget表格的宽度

本文归属于 Qt实验室-CSDN博客 系列文章 默认值 QTableWIdget的表格宽度默认是一个给定值,可以手动调整每列的宽度,也不填满父窗口 MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) {this->resize(800,600);QStringList contents{&q…

2023.11-9 hive数据仓库,概念,架构,元数据管理模式

目录 0.数据仓库和数据库 数据仓库和数据库的区别 数据仓库基础三层架构 一.HDFS、HBase、Hive的区别 二.大数据相关软件 三. Hive 的优缺点 1)优点 2)缺点 四. Hive 和数据库比较 1)查询语言 2)数据更新 3)…

《视觉SLAM十四讲》-- 相机与图像

04 相机与图像 4.1 相机模型 4.1.1 针孔相机模型 针孔模型描述了一束光线通过针孔后,在针孔背面投影成像的关系(类似小孔成像原理)。 根据相似三角关系 Z f − X X ′ − Y Y ′ (3-1) \frac{Z}{f}-\frac{X}{X^{\prime}}-\frac{Y}{Y^{\p…

UART学习

uart.c #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_uart.h" // UART4_TX : PG11 AF6 // UART4_RX : PB2 AF8 void __uart_init() {// GPIOB2 设置为复用功能GPIOB->MODER & (~(0x3 << 4));GPIOB->MODER | (0x2 << 4);G…

5.图层控制器(DefaultOverlayManager)

愿你出走半生,归来仍是少年&#xff01; 图层控制器用于操作在MapView中的图层。 1.图层新增 voidadd(int pIndex, Overlay pElement)List<Overlay>overlays() 通过add方法可向MapView中新增一个图层&#xff0c;并指定其顺序。或者通过获取其图层的List,进行操作新增。…

算法与数据结构--前缀和

一维前缀和适用于计算某个一维数列某个数到某个数之间的累加和&#xff08;或者乘积&#xff0c;又或者异或和&#xff09;之类的。 比如计算某个一维度数列从i到j之间元素的和。最开始的想法就是从i遍历到j&#xff0c;将这之间的元素相加。但是当查询次数很多时候&#xff0…

基于DBO算法的WSN节点覆盖优化

先做一个声明&#xff1a;文章是由我的个人公众号中的推送直接复制粘贴而来&#xff0c;因此对智能优化算法感兴趣的朋友&#xff0c;可关注我的个人公众号&#xff1a;启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法&#xff0c;经典的&#xff0c;或者是近几年…

【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)

第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) The 3rd International Academic Conference on Blockchain, Information Technology and Smart Finance 第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) 将于2024年2月23-25日在马来西亚举行。本次会…

数据结构-二叉排序树(建立、查找、修改)

二叉排序树概念 二叉排序树是动态查找表的一种&#xff0c;也是常用的表示方法。 其中&#xff0c;它具有如下性质&#xff1a; 1.若它的左子树非空&#xff0c;则其左子树的所有节点的关键值都小于根节点的关键值。 2.若它的右子树非空&#xff0c;则其右子树的所有节点的…

IP地址如何实现定位功能?

网络犯罪、保护网络安全的重要手段。近日&#xff0c;一则新闻引起了广大网友的关注&#xff1a;IP也能实现定位功能&#xff0c;这是如何做到的呢&#xff1f;本文将对此进行深入解析。 首先&#xff0c;我们需要了解什么是IP地址定位。IP地址定位是通过IP地址确定网络用户所在…

计算机视觉:使用opencv实现银行卡号识别

1 概述 1.1 opencv介绍 OpenCV是Open Source Computer Vision Library&#xff08;开源计算机视觉库&#xff09;的简称&#xff0c;由Intel公司在1999年提出建立&#xff0c;现在由Willow Garage提供运行支持&#xff0c;它是一个高度开源发行的计算机视觉库&#xff0c;可以…

我国陆地遥感卫星发展现状与展望

一、引言 从20世纪90年代末至今&#xff0c;我国陆地遥感卫星事业历经二十多年&#xff0c;实现了从无到有、从小到大、从弱到强的跨越发展。随着高分辨率对地观测系统重大专项&#xff08;高分专项&#xff09;、《陆海观测卫星业务发展规划&#xff08;2011—2020年&#xff…

vue3响应式api

响应式api——compositon api setup&#xff1a; 不要再想this问题执行是在beforeCreated之前 beforeCreated&#xff1a;也就是创建了一个实例 created&#xff1a;挂载了数据 通过形参props接收&#xff0c;只读 以后所有代码都写到setup中 判断是否只读&#xff1a;isReadon…

【杜利奥定律】热情让你的人生更精彩

&#x1f680;What kind of mentality&#xff08;/menˈtləti/&#xff09;, what kind of interpersonal relationships, and what kind of quality of life there is . &#x1f680; 有什么样的心态&#xff0c;就有什么样的人际关系&#xff0c;就有什么样的生活质量——…

【04】Istio的pilot流量分发机制

4.1 Pilot配置分发机制 Pilot负责网格数据平面相关配置信息的获取&#xff0c;生成&#xff0c;和分发&#xff0c;它通过Service Registry获取网格配置信息并将其转换为XDS接口的标准数据格式&#xff0c;而后经gRPC分发至相关的Envoy; Service Registry&#xff1a;服务注册表…

EXIT(1)

EXTI介绍 EXTI是片上外设 NVIC是cpu内的外设 回忆起之前的GPIO和AFIO 我们是如何检测按键按下的 我们是一直用while循环读取IDR寄存器的对应位置的值 一直检测判断按键是否被按下 那么是否有第二种方式检测按键是否被按下了呢&#xff1f; 通过EXTI 当EXTI检测到按键的电平发生…

【C++】【Opencv】minMaxLoc()函数详解和示例

minMaxLoc&#xff08;&#xff09;函数 是 OpenCV 库中的一个函数&#xff0c;用于找到一个多维数组中的最小值和最大值&#xff0c;以及它们的位置。这个函数对于处理图像和数组非常有用。本文通过参数和示例详解&#xff0c;帮助大家理解和使用该函数。 参数详解 函数原型…