halcon+C#联合编程学习:HDrawingObject类用法

Qt使用键盘事件实现ESC键退出Halcon的绘图流程 针对Halcon在Qt或c++下开发时绘图等待无法正常取消的情况,依据Halcon的绘图终止的要求,在Qt上使用事件过滤器和事件重写等函数来模拟Halcon绘图取消的功能。 阅读详情
AI摘要

本文介绍了使用Halcon的HDrawingObject类进行视觉检测的实践,结合C#编程,在VS2022环境下,利用.NET Framework 4.5.2和halcon自带的hWindowControl控件,实现ROI选择颜色动态变化(选中蓝色,未选中红色)及实时阈值分割效果。通过探讨ROI回调函数和对象ID匹配,提供了一种交互式视觉检测的解决方案。

最近在学习halcon自带的ROI绘制类,修改了halcon自带的demo(所用版本为halcon12,其他版本大同小异),demo路径:C:\Users\Public\Documents\MVTec\HALCON-12.0\examples

VS版本:VS2022;目标框架:.NETFrameWork4.5.2 使用的窗体:halcon自带的hWindowControl窗体控件

所实现的功能:1、选中或者新创建的ROI为蓝色,未选中的ROI为红色。2、ROI内的区域进行阈值分割,拖动ROI,修改ROI大小,都可以显示分割的结果。

UI界面:

后台代码:

注意事项:1.匹配两个HDrawingObject对象是否相等,通过匹配ID属性实现

2.可以学习如何使用ROI的回调函数

using HalconDotNet;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DrawingObject
{
    public interface IHWindowGraphicStack
    {
        void DisplayResults();
        void AddToStack(HObject o);
    }
    public p
Halcon+C#实战:利用HDrawingObject回调函数打造一个实时ROI参数监控面板 本文详细介绍了如何利用Halcon的HDrawingObject回调函数与C#结合,打造实时ROI参数监控面板。通过解析HDrawingObject的核心架构、线程安全的数据传递方案以及高级监控面板实现技巧,帮助开发者提升工业视觉检测系统的交互效率与用户体验。文章还涵盖了性能优化与异常处理策略,确保系统稳定运行。 阅读详情

相关推荐

利用Halcon绘制ROI区域或Mask区域

ROI是Halcon中的一个很重要的概念,为了减少计算量,只关注待检测物体或该物体周围的一片区域即可,ROI就是图像处理所关注的区域。

成名每在穷苦日 5887

Halcon 画 ROI 区域并生成区域(draw_circle,gen_circle,draw_ellipse, gen_ellipse,draw_rectangle1, gen_rectangl)

1)常用的画区域,生成区域 (draw_circle,gen_circle,draw_ellipse, gen_ellipse,draw_rectangle1, gen_rectangle1, draw_rectangle2, gen_rectangle2, draw_region, draw_line,gen_region_line, gen_region points等);draw_算子,运行到该行后,需用鼠标画出需要形状,然后单击右键,停止并确认绘制;矩形轮廓边缘 像素为单位。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1342

HALCON联合C#检测表面缺陷——ROI交互(一)(和图片同步缩放裁剪等功能)

前面我们已经说了ROI的基本交互,但是ROI不能和图片同步缩放,这一篇我们来优化一下ROI的交互功能,我们从新建一个新的项目,在新的项目里我带大家来做一下。大家做好之后可以再移植到自己的检测框架中。ROI的交互实现方式有很多中,我这里暂时介绍一种,使用文件读写的方式来实现。我们在画ROI的时候,我们可以保存ROI到本地,然后缩放图片的同时,再把ROI读取显示到图片上即可实现ROI同图片的一同缩放。新建一个C#项目引用halcon的DLL文件 工具箱中添加项 添加按钮如下 矩形1:画普通的矩形,不带角度矩形2

奔跑的郑的博客 2838

C#联合Halcon实现交互式ROI绘制:从Draw函数到HDrawingObject

在机器视觉与图像处理项目中,ROI(感兴趣区域)的交互式绘制是连接界面操作与算法处理的关键环节。理解ROI概念后,开发者需要掌握其底层原理:传统Draw系列算子依赖阻塞式交互,而HDrawingObject对象化方案则以非阻塞、可实时回调的机制,解决了UI线程冻结与坐标错位等工程痛点。该技术的价值在于,它能让现场操作人员灵活框选测量、识别或定位所需范围,而不必修改底层代码。无论是视觉检测上位机、算法调试工具,还是需要频繁调整标注区域的在线测量系统,ROI绘制能力都决定了软件易用性与开发效率。本文聚焦C#联合

weixin_31528001的博客 187

C#联合Halcon实现可交互ROI绘制:从坐标转换到模板匹配实战

在机器视觉项目开发中,感兴趣区域(ROI)作为图像处理的关键前置环节,直接影响算法的运行效率与稳定性。工业现场对目标区域进行灵活圈定,要求上位机具备交互式绘制能力。通过图像显示与坐标映射原理,可以准确实现屏幕坐标到图像坐标的转换,为后续区域裁剪奠定基础。采用Halcon提供的HDrawingObject交互对象,则能有效提升用户绘制与调整ROI的体验。这项技术可广泛应用于模板匹配、尺寸测量及缺陷检测等典型场景,例如利用ReduceDomain对图像进行区域约束,显著降低计算耗时并提高检测精度。本文围绕C#上

weixin_31364787的博客 316

C#与Halcon机器视觉框架:图像采集、九点标定与坐标变换实战

在工业自动化领域,机器视觉系统的搭建往往涉及多硬件协作与复杂算法集成,而C#作为上位机开发的常用语言,与Halcon强大的图像处理能力相结合,已成为视觉检测项目的主流技术栈。理解图像采集、像素坐标系与机械坐标系的映射关系,是实现精准定位与测量控制的基础。其中,九点标定作为建立二维仿射变换的经典方法,能有效解决视觉引导运动控制中的坐标对齐问题。同时,通过HDevEngine集成与算子级性能分析,工程师可以更高效地完成从原型验证到生产部署的全流程落地。本文围绕视觉检测框架的设计思路,介绍Halcon在C#环境下

weixin_33326218的博客 187

HDrawingObject的使用

HDrawingObject的使用

基于WebGL架构的3D可视化平台—平面图导航(一)

前言 利用CampusBuilder来搭建自己的虚拟世界过程有这样一个问题:如何快速聚焦到虚拟场景的某一位置。当然我们可以创建几个按钮对应查找我们需要去的位置(参照物)并聚焦,但是按钮并不是很炫酷也不能很好的反馈给我们一些信息。接下来我们就用平面导航图来解决这一问题。 第一步:使用CampusBuilder搭建模拟场景,CampusBuilder操作简单,分分钟就可以上手。 ...

nioooom的博客 4163

Comsol超声空化气泡仿真:从基础理论到工业应用实践

本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。

weixin_27966471的博客 252

[深度学习] 从 originbot 到 origincar

原来,OriginBot的摄像头是MIPI模式,而OriginCar的摄像头是USB摄像头,也就是imageWidth 是0~959,超过了范围640。origincar在执行以下命令部署模型时。

chdlr的博客 2385

基于STM32开发板的USB MIDI键盘实现

在本文中,我们介绍了如何使用STM32开发板和相应的软件工具来实现USB MIDI键盘。通过配置STM32CubeMX和编写相应的源代码,我们能够将STM32开发板转换为一个功能齐全的USB MIDI设备。我们将使用STM32开发板和相应的软件工具来实现这一功能,并提供相应的源代码供参考。此时,您应该可以使用STM32开发板作为USB MIDI键盘,并在按键按下时听到相应的音符。在STM32CubeMX中,选择适当的STM32型号,并启动一个新的项目。然后,将生成的可执行文件烧录到STM32开发板中。

2301_79326616的博客 1588

RK3568 HDMI输出调试:分辨率切换与EDID解析

厂商信息(Vendor ID)显示器型号(Product ID)支持的分辨率列表色彩特性音频支持情况检查项方法HPD 信号EDID 读取当前模式TMDS 时钟PHY 状态。

小灰灰的博客 1486

java项目反编译工具记录,共计6个工具

java项目反编译工具记录,共计6个工具

橙-极纪元-JJYCheng 1801

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

下一篇: halcon+C#联合编程涉及的面向过程与面向对象编写方式
programmingc_
博客等级 码龄6年 4粉丝 3原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值