- 博客(28)
- 资源 (4)
- 收藏
- 关注
原创 Halcon 与 C# 混合编程
1.新建一个Windows窗体应用程序,命名为Demo2.添加Halcon组件右键引用 -> 选择添加引用:选择浏览:在你自己Halcon的安装路径下,找到bin/dotnet35/,选择halcondotnet.dll文件,点击确定:确定后,会在解决方案下引用列表中找到我们刚刚添加的halcon组件:3.更改框架右键工程 -> 属性,...
2018-12-07 14:02:09 6031 1
原创 Halcon 中实现 Otsu 算法
Halcon 中的全局阈值分割算子 binary_threshold 中,Method = 'max_separability' 指的就是Otsu法(最大类间方差法,有时也称之为大津算法)。Otsu 算法也叫全局最优阈值处理,使用聚类思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别来划分。 所以可...
2019-08-27 17:02:21 4833
原创 Basler相机外部触发设置
一、相机硬件接线图2号引脚接传感器的触发信号引脚,5号与传感器共地连接。二、pylon软件设置三、halcon软触发相机拍照Halcon采集助手设置软触发: 1.set_framegrabber_param (AcqHandle, 'TriggerMode', 'On')2.set_framegrabber_param (AcqHandle, 'TriggerS...
2019-07-05 11:38:48 18391 3
原创 第十三章 跨线程访问可视化控件
目录1 细说 UI 线程2 跨线程访问可视化控件的基本方法2.1 可视化控件的 Invoke 和 BeginInvoke 方法如下由于可视化控件是由 “UI 线程” 创建的,而数据处理任务通常由其他一些线程执行,可将这些线程称为 “工作线程”,因此在用户界面上显示工作线程执行状态信息本质上是一个 “跨线程访问可视化控件” 的问题。1 细说 UI 线程在 Windows 应用...
2019-05-10 10:51:36 399
原创 第十二章 Winform 框架
目录1 Win32 应用程序结构1.1 Windows 消息循环1.2 窗口过程1.3 创建基于 Win32 的单窗体应用程序1.4 创建基于 Win32 的多窗体应用程序2 .NET Winform 程序与传统 Win32 程序的关联3 Windows Forms 框架4 Winform 程序结构4.1 UI线程4.2 消息循环4.3 窗口过程5 ...
2019-05-10 10:45:44 1365
原创 第十一章 线程同步与并发访问共享资源
目录1 死锁与数据存取错误1.1 多线程程序中的 “死锁” 现象1.2 多线程引发的数据存取错误2 锁2.1 锁定共享资源 —— Monitor3 线程同步3.1 等待句柄3.2 使用互斥同步对象 Mutex3.3 管理多个共享资源 —— Semaphore3.4 线程同步事件类 —— EventWaitHandle4 线程池4.1 线程池简介4...
2019-05-10 10:25:33 993
原创 第十章 多线程开发
目录1 线程的创建、启动和停止1.1 创建线程对象1.2 线程的启动、暂停和提前中止1.3 背景线程1.4 等待一个线程的完成2 Windows 操作系统线程调度策略2.1 线程状态2.2 线程优先级2.3 Windows 操作系统的抢先式线程调度策略3 向线程函数传送信息的方式3.1 添加 “外壳” 方法3.2 使用带参数的 Parameteriz...
2019-05-10 10:09:32 267
原创 第九章 进程与进程间通信
目录1 操作系统的进程与线程管理1.1 进程的创建与运行1.2 进程中的线程1.3 CLR 如何管理进程与线程2 进程的启动与终止2.1 进程启动2.2 中止一个进程3 进程间通信3.1 使用剪贴板在进程间传送对象3.2 使用 FileSystemWatcher 实现进程同步3.3 使用内存映射文件实现进程通信1 操作系统的进程与线程管理1.1 ...
2019-05-09 21:17:16 602
原创 第八章 异步编程模式
目录1 异步编程的必要性1.1 同步调用与异步调用1.2 基于委托的异步调用1.3 等待异步调用完成1.4 处理异步调用时的异常1.5 异步编程小结1 异步编程的必要性.NET 的异步编程技术主要分为两大块:“使用 IAsyncResult 的异步编程模式” 和 “基于事件的异步编程模式”1.1 同步调用与异步调用通常情况下,当我们调用方法 A 后,在 A ...
2019-05-09 18:24:39 338
原创 第七章 事件及事件驱动
目录1 .NET 事件处理机制的剖析与应用1.1 直观理解 “事件” 的概念1.2 事件与委托的关系1.3 .NET 事件实现机制剖析1.4 委托链表的分步调用1 .NET 事件处理机制的剖析与应用1.1 直观理解 “事件” 的概念事件建立于委托的基础之上。从面向对象角度来说,事件是由对象发出的消息,它是一个信号,通知其它对象有事情发生。例如,用户单击窗体上的某...
2019-05-09 18:15:09 478
原创 第六章 神奇的委托
目录1 委托的概念与使用1.1 委托概述1.2 委托链表1.3 委托的作用2 使用泛型委托2.1 自定义泛型委托与使用2.2 Func 系列委托2.3 Action 系列委托与 MethodInvoker2.4 Predicate委托3 匿名方法与 Lambda 表达式3.1 匿名方法揭秘3.2 奇特的 Lambda 表达式4 掌握回调的编程技巧...
2019-05-09 17:48:35 402 1
原创 第五章 程序集
目录1 程序集的基础知识1.1 程序集的生成与使用2 程序集与组件化开发2.1 组件的概念2.2 组件化开发方法及步骤2.3 组件化开发中的组件依赖性3 互操作程序集与本地类型3.1 .NET 互操作程序集1 程序集的基础知识1.1 程序集的生成与使用“程序集(Assembly)”是 .NET Framework 中基本的软件模块,它可以包含数目不限的类...
2019-05-09 17:20:30 281
原创 第四章 异常捕获与处理
目录1 .NET异常处理基础1.1 try、catch 和 finally1.2 异常基类 Exception2 应对程序运行时出现的异常2.1 捕获多种类型的异常1 .NET异常处理基础1.1 try、catch 和 finallyC#使用 try...catch...finally 关键字编写异常处理代码块。其代码框架如下:try{ // 可能引...
2019-05-09 17:14:58 363
原创 第三章 继承与多态
目录1 方法的重载、隐藏与重写辨析1.1 继承关系下的方法重载1.2 子类隐藏父类的方法1.3 方法重写与虚方法调用2 通过实例理解多态2.1 通过继承实现多态2.1 利用接口实现多态3 协变与逆变1 方法的重载、隐藏与重写辨析由于子类对象同时包含了父类和子类定义的所有公共方法,因此,子类方法与父类方法之间的关系可以概括为以下三种:扩充:父类中没有与子类...
2019-05-09 15:49:44 263
原创 第二章 字段、方法与属性
1 字段与属性的初始化方式汇总C#中类可以包含三种成员:字段(Field)方法(Method)属性(Property)其中,属性为字段的进一步封装。1.1 对象初始化方式假设我们定义一个类 Studentpublic class Student{ public string name; public int age;}我们可以通过采用以下方式直...
2019-05-09 15:36:52 900
原创 第一章 数据类型趣谈
目录1 值类型与引用类型1.1 线程堆栈和托管堆1.2 引用类型变量的内存模型1.3 “=” 和 “==” 辨析1.4 装箱与拆箱2 说不尽的字符串3 数据类型的模板化——泛型1 值类型与引用类型1.1 线程堆栈和托管堆值类型:int、double、enum、struct引用类型:类、接口、数组、委托、String值类型变量与引用型变量的内存分配模型...
2019-05-09 15:26:35 278
原创 C# 代码 XML 注释规范及其 .chm 帮助文档生成
一.摘要当我们进行程序开发时,面对一个大型项目,需要多人分工合作,每人实现一个模块。当我们需要调用他人编写的模块时,首先参考的不是源码部分,而是要去通读其代码注释部分。因此,代码注释是否规范标准,很大程度上影响着项目的开发进度。.Net允许开发人员在源代码中插入XML注释,这在多人协作开发的时候显得特别有用。C#解析器可以把代码文件中的这些XML标记提取出来,并作进一步的处理为外部文档。在...
2019-03-06 17:51:24 2681
原创 机器视觉中的光源选型及打光方案分析
光源选择标准光源的选择标准如下:(1)光源均匀性要好,在有效的照射范围内,灰度值标准差要小;(2)具有较宽的光谱范围,可以对不同材料的物体进行检测;(3)光照强度要足够,提高信噪比,利于图像处理;(4)具有较长的使用寿命及较高的稳定性,要保障光源在长时间运行状态下能够持续稳定的提供照明环境;(5)成本低,易根据现场情况定制特殊形状光源。2.2.2 光源的分类光源从大...
2019-02-25 09:47:20 43456 6
原创 Halcon解决方案指南(18)OCR--字符识别
第18章 光学字符识别_OCROCR(Optical Character Recongnition)即我们通常意义上讲的光学字符识别。在HALCON中,OCR常被用来分割区域及读取识别图像中的字符含义。HALCON中提供了一组预先训练好的字体(在安装目录下的ocr文件夹中),这些字体来源于各个领域的大量训练数据,可识别文档、制药、工业产品或点打印,甚至手写数字文本。此外,HALCON还包括...
2018-11-05 22:19:33 21959 5
原创 barcode_quiet_zone
示例程序显示条形码受参数'quiet_zone'的影响。 该示例程序给出了如何为参数选择适当的值。create_bar_code_model ([], [], BarCodeHandle)set_bar_code_param (BarCodeHandle, 'persistence', 1)PART I 读取条形码,无需空白区验证QuietZone := 'false'set_...
2018-11-04 23:18:31 2116
原创 Halcon解决方案指南(16)一维码识别
第16章 一维码识别_BarCodecreate_bar_code_model创建条形码模型。返回的句柄提供有关条形码结构的所有必要信息。find_bar_code读取条形码。可以指定要搜索的模型和条形码类型。返回指定类型的所有条码区域和解码字符串。clear_bar_code_model销毁条码模型。16.1 识别条码 读取下图所示的EAN 13条形码。create...
2018-11-04 23:00:26 14550 4
原创 开发拥有自定义事件的控件(二)
可统计单击次数的自定义按钮 .NET Framework提供了拥有丰富特性的可视化控件,给开发带来了很大的方便。但这些控件都是针对通用场景设计的,在实际开发中,往往需要一些拥有特定功能的控件,人们通常选择在已有控件的基础上加以组合或扩充以得到这些“新的”自定义控件,毕竟完全从零开始开发不是一件简单的事情。 在Windows Form中,从头开始定义一个Windos For...
2018-10-18 11:21:25 381
原创 开发拥有自定义事件的控件(一)
拥有计时功能的进度条控件.NET Framework提供了拥有丰富特性的可视化控件,给开发带来了很大的方便。但这些控件都是针对通用场景设计的,在实际开发中,往往需要一些拥有特定功能的控件,人们通常选择在已有控件的基础上加以组合或扩充以得到这些“新的”自定义控件,毕竟完全从零开始开发不是一件简单的事情。 本例所开发的这个控件,是一个进度条与定时器的组合控件,名为“TimeProgress...
2018-10-14 20:32:53 441
原创 跨线程访问可视化控件的基本方法
可视化控件的Invoke和BeginInvoke方法当我们在线程函数中写代码直接访问UI控件的属性和调用它们的方法时,结果无一例外,都会得到Visual Studio给出的同样的报错信息。 引发上述异常的原因在于TextBox控件是由主线程创建的,不能直接从另一个线程访问。在Windows应用程序中,绘制窗体和控件是由“UI线程”负责的,因此Windows不允许其它线程直接访问可视...
2018-10-12 16:21:16 1434 1
原创 C#窗体间信息的双向传送(四)静态方法
主从窗体利用静态方法相互传递数值从窗体利用静态方法主动通知主窗体(这种方法本质上是定义了一个“全局”的字段和方法)。类的静态成员在整个“应用程序域”内都是共享的,在多线程环境下如果多个线程需要同时访问它们,则必须注意“线程同步”问题,但这些问题在单线程程序中不存在。 1.主窗口->从窗口:主窗体调用从窗体的__Show静态方法public partial ...
2018-10-12 10:10:04 666 1
原创 C#窗体间信息的双向传送(三)事件驱动
利用事件“时刻关注”事件的主要特点是一对多关联,即一个事件源可以有多个响应者。在具体实现上,事件建立于委托的基础之上,.NET Framework的事件处理机制是基于多路委托实现的。事件通过关键字event定义,只能由事件源对象自己引发,不允许外界引发。 1.主窗口->从窗口:事件建立于委托的基础之上,既然可以用委托实现消息的广播,那么一定能用事件机制实现“消息广播...
2018-10-12 09:29:36 409
原创 C#窗体间信息的双向传送(二)利用委托
利用委托“广而告之”委托是一种新的面向对象语言特性,微软公司在设计.NET编程语言(如C#和Visual Basic .NET)时引如入。C#使用delegate关键字来定义委托,可以将其看成是一种数据类型,用于定义变量。但它所定义的变量能接收的值只能是一个方法。即委托变量可以接收一个对象实例方法的引用。 1.主窗口->从窗口:主窗体使用.NET系统预定义的委托 A...
2018-10-12 08:51:35 734
原创 C#窗体间信息的双向传送(一)引用方式
C#窗体间信息的双向传送(一)引用方式要实现主从窗体对象信息的相互传送,这两个对象间必须建立一个双向的关联,即每个都拥有对方的引用。具体来说,就是主窗体拥有一个私有字段引用从窗体,从窗体也有一个私有字段引用主窗体。 1.主窗口->从窗口:主窗体用一个私有字段保存对从窗体对象的引用,调用从窗体的公有方法(或者对从窗体公有属性赋值),可以将特定信息从主窗体传给从窗体。主窗体fr...
2018-10-11 21:36:04 808
threshold_Otsu.hdvp
2019-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人