Halcon的HWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)

Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)

文章目录

  • Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)
    • 一、 引入hSmartWindowControl控件
    • 二、 编写打开图像功能
    • 三、 编写绘制ROI功能
    • 四、源程序下载

Halcon的新版本中增加了HSmartWindowControl控件,该控件可以很方便的实现图像的缩放、拖拽、及自适应显示,虽然使用HSmartWindowControl控件虽然有诸多便利,但是该控件不支持传统HWindowControl的Draw_*函数,要想在该控件上实现ROI图形区域的绘制需要通过其他方式,本文中有详细叙述。实现的功能如下视频:

Halcon的HWindowControl控件在C#WinF

一、 引入hSmartWindowControl控件

1、打开VS软件,在工具箱中右击,选择”选择项“,如下图所示:
在这里插入图片描述

2、打开“.Net FrameWork组件”,点击右下角“浏览”按钮,在halcon的安装目录中找到halcondotnet.dll,添加进来,打开目录如下图所示:
在这里插入图片描述
3、关闭此窗口,回到”工具箱“,可以看到"控件hSmartWindowControl"已经添加到工具箱了,可以像其他控件一样拖入到窗体中使用。如下图所示:
在这里插入图片描述

二、 编写打开图像功能

 //获取图像及显示窗口长宽HOperatorSet.GetImageSize(image, out HTuple imgWidth, out HTuple imgHeight);int wndWidth = hSmartWindowControl1.ClientRectangle.Width;int wndHeight = hSmartWindowControl1.ClientRectangle.Height;//计算比例double scale = Math.Max(1.0 * imgWidth.I / wndWidth, 1.0 * imgHeight / wndHeight);double w = wndWidth * scale;double h = wndHeight * scale;//居中时,Part的区域hSmartWindowControl1.HalconWindow.SetPart(-(h - imgHeight) / 2, -(w - imgWidth) / 2, imgHeight + (h - imgHeight.D) / 2, imgWidth + (w - imgWidth) / 2);//背景色hSmartWindowControl1.HalconWindow.SetWindowParam("background_color", "black");hSmartWindowControl1.HalconWindow.ClearWindow();hSmartWindowControl1.HalconWindow.DispObj(image);

如下图所示:
在这里插入图片描述
在这里插入图片描述

三、 编写绘制ROI功能

 //创建一个矩形的显示实例DoRoi = HDrawingObject.CreateDrawingObject(HDrawingObject.HDrawingObjectType.RECTANGLE1, 500, 500,  1000, 1000);DoRoi.SetDrawingObjectParams("color", "green");//挂靠实例到HSmartWindowControl控件hSmartWindowControl1.HalconWindow.DetachDrawingObjectFromWindow(doRoi);//获取矩形参数
string[] str = { "row1", "column1", "row2", "column2" };
HTuple val = DoRoi.GetDrawingObjectParams(str);//生成ROI
HOperatorSet.GenRectangle1(out HObject roi, val[0], val[1], val[2], val[3]);
HOperatorSet.ReduceDomain(m_SrcImage, roi, out HObject imageROI);ShowImage(imageROI);

点击画ROI按钮,如图所示:
在这里插入图片描述
点击生成REGION按钮,如图所示:
在这里插入图片描述

四、源程序下载

源程序下载地址: Halcon的HWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)

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

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

相关文章

操作系统②——内存管理

1. 栈、堆 1.1 程序的内存分配 栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap):一般由程序员分配释放&#x…

光猫桥接模式详细步骤

目录 一、前言 路由模式 (宽带默认) 桥接模式 二、桥接模式步骤 (一)图片记录备份 设备信息图 网络侧信息 远程管理密码 宽带上网设置 (二)桥接模式开始 光猫设置 路由器设置 一、前言 重点&a…

2_5.Linux存储的基本管理

实验环境: 系统里添加两块硬盘 ##1.设备识别## 设备接入系统后都是以文件的形式存在 设备文件名称: SATA/SAS/USB /dev/sda,/dev/sdb ##s SATA, dDISK a第几块 IDE /dev/hd0,/dev/hd1 ##h hard VIRTIO-BLOCK /de…

sharding‐jdbc之分库分表(mysql主从同步的数据库安装和使用)

水平分表 创建基础工程.. 引入sharding‐jdbc的maven依赖包 注意需要数据库连接池等依赖 <dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1&l…

【JavaWeb】Day36.MySQL概述——数据库设计-DDL(三)

查询 关于表结构的查询操作&#xff0c;工作中一般都是直接基于图形化界面操作。 1.查询当前数据库所有表 2.查看指定表结构 3.查询指定表的建表语句 注意&#xff1a;23版的点击导航中的转到DDL 修改 关于表结构的修改操作&#xff0c;一般也是直接基于图形化界面操作。 添…

智能感应门改造工程

今天记录一下物联网专业学的工程步骤及实施过程 智能感应门改造工程 1 规划设计1.1 项目设备清单1.2项目接线图 软件设计信号流 设备安装与调试工程函数 验收 1 规划设计 1.1 项目设备清单 1.2项目接线图 软件设计 信号流 设备安装与调试 工程函数 工程界面: using System; …

【STM32】存储器和位带映射(bit band mapping)

文章目录 0 前言1 关于地址和存储器2 STM32内部存储器3 位带映射&#xff08;bit band mapping&#xff09;4 扩展&#xff1a;IAP 0 前言 最近在研究stm32标准库&#xff0c;对使用宏定义实现位操作的函数非常感兴趣&#xff0c;简单的一句PAout(1) 0;就能实现某个引脚电平的…

Linux离线安装python3(源码编译)

1、下载python包 下载python3.9.6的源码包 python下载 下载后&#xff0c;解压&#xff0c;目录如下&#xff1a; -rw-------. 1 root root 1454 Aug 26 2023 anaconda-ks.cfg -rw-r--r--. 1 root root 25640094 Apr 4 21:52 Python-3.9.6.tgz drwxrwxr…

前端三剑客 —— JavaScript (第一天)

目录 回顾内容 1.弹性布局 2.网格布局 JavaScript 概述 发展 浏览器 什么是Javascript JavaScript 能干什么 JavaScript需要的环境 JavaScript初体验 基本数据 JS书写方式 行内JS 页面JS 外部JS 1&#xff09;创建外部JS文件 2&#xff09;编写页面 对话框 警…

ubuntu-server部署hive-part2-安装hadoop

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本&#xff1a;ubuntu-server-22.04.3 虚拟机&#xff1a;virtualbox7.0 安装hadoop ​​​​​​下载上传 下载地址 https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/ 以root用…

simulink的硬件支持下,串口发送的模型,stm32f407的串口程序调试错误

串口调试助手能接收到数据&#xff0c;为何是8个数据&#xff1f;如之奈何&#xff1f; 参考文章&#xff1a; STM32CubeMxMATLAB Simulink串口输出实验_用stm32cubemx生成的串口都是输出-CSDN博客根据 该文章发送字符串 hello&#xff0c;发送数量为5&#xff0c;接收也是he…

【PyQt5篇】多线程

文章目录 &#x1f354;使用QtDesigner进行设计&#x1f6f8;实现多线程&#x1f339;效果&#x1f50e;原因 &#x1f354;使用QtDesigner进行设计 对应的代码btn.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0">&l…

边界值设计测试用例

​ 边界值分析法&#xff08;Boundary Value Analysis&#xff0c;BVA&#xff09;的测试用例来自于等价类的边界&#xff0c;是等价类划分法的补充。根据边界值划分法&#xff0c;等价类分析法中的测试数据不是选取等价类中的典型值或任意值&#xff0c;而是应当选取正好等于、…

C++语言学习(三)——内联函数、auto、for循环、nullptr

1. 内联函数 &#xff08;1&#xff09;概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调 用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。 内联函数是一种编译器指令&#xff0c;用于告诉编译器…

Web3 革命:揭示区块链技术的全新应用

随着数字化时代的不断发展&#xff0c;区块链技术作为一项颠覆性的创新正在改变着我们的世界。而在这一技术的进步中&#xff0c;Web3正逐渐崭露头角&#xff0c;为区块链技术的应用带来了全新的可能性。本文将探讨Web3革命所揭示的区块链技术全新应用&#xff0c;并展望其未来…

Redis从入门到精通(四)Redis实战(一)短信登录

文章目录 前言第4章 Redis实战4.1 短信登录4.1.1 基于session实现短信登录4.1.1.1 短信登录逻辑梳理4.1.1.2 创建测试项目4.1.1.3 实现发送短信验证码功能4.1.1.4 实现用户登录功能4.1.1.5 实现登录拦截功能4.1.1.6 session共享问题 4.1.2 基于Redis实现短信登录4.1.2.1 Key-Va…

顺子日期(结果填空)

为了解决这个问题&#xff0c;我们需要遍历2022年的每一天&#xff0c;并检查日期的每一位数字以查找顺子。下面是一个Java程序&#xff0c;用于计算2022年中的顺子日期数量&#xff1a; public class Main {public static void main(String[] args) {int count 0; for (int…

[StartingPoint][Tier0]Preignition

Task 1 Directory Brute-forcing is a technique used to check a lot of paths on a web server to find hidden pages. Which is another name for this? (i) Local File Inclusion, (ii) dir busting, (iii) hash cracking. (目录暴力破解是一种用于检查 Web 服务器上的大…

leetcode代码记录(有效的字母异位词

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断它们是不是一组变位词&#xff08;字母异位词&#xff09;。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同且字符顺序…

【简单讲解下epoll】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…