c#-Halcon入门教程——标定

 Halcon代码

read_image (NinePointCalibration, 'D:/Desktop/halcon/ca74d-main/九点标定/NinePointCalibration.gif')rgb1_to_gray (NinePointCalibration, GrayImage)get_image_size (GrayImage, Width, Height)
dev_display (GrayImage)* 获取当前显示的窗口句柄
dev_get_window (WindowHandle) 
* 设置显示窗口的显示区域为整个图像大小
* 参数:窗口左上角x坐标,窗口左上角y坐标,窗口高度,窗口宽度
dev_set_part (0, 0, Height, Width)
threshold (GrayImage, Regions, 0, 142)* 填充二值图像中的空洞(输入区域,输出填充后的区域)
fill_up (Regions, RegionFillUp)
* 开运算
opening_circle (RegionFillUp, RegionOpening, 3.5)
* 连接相邻的区域
connection (RegionOpening, ConnectedRegions)
* 根据形状特征(这里是面积)选择区域
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 2259.62, 5000)
*对选择的区域按某一特征排序
* 参数:输入区域,输出排序后的区域,排序特征('character'表示字符特征,这里按区域中心点排序),排序方向('true'表示升序),排序的参考方向(这里是按行排序)
sort_region (SelectedRegions, SortedRegions, 'character', 'true', 'row')
* 在排序后的区域中找到最小的外接圆
* 参数:输入区域,输出圆心的行坐标,输出圆心的列坐标,输出圆的半径
smallest_circle (SortedRegions, Row, Column, Radius)* 生成一个十字标记,用于标记找到的圆心位置
* 参数:输出十字标记,十字中心点的行坐标,十字中心点的列坐标,十字标记的长度,十字标记的倾斜角度(0.785398弧度约等于45度)
gen_cross_contour_xld (Cross, Row, Column, 50, 0.785398)* 显示原始灰度图像
dev_display (GrayImage)* 显示生成的十字标记
dev_display (Cross)
  1. 图像读取:首先,我们使用read_image函数读取存储在指定路径的图像文件。这个函数将图像加载到内存中,以便后续处理。

  2. 灰度转换:由于许多图像处理算法在灰度图像上效果更好,我们使用rgb1_to_gray将RGB图像转换为灰度图像。

  3. 图像尺寸获取:使用get_image_size获取图像的宽度和高度,这对于后续设置显示窗口和计算等很有用。

  4. 显示图像dev_display用于在HALCON的图形窗口中显示图像。

  5. 设置显示区域dev_set_part用于设置显示窗口的显示范围,这里设置为整个图像的大小。

  6. 阈值分割threshold函数将灰度图像转换为二值图像,通过设定一个阈值来区分前景和背景。

  7. 空洞填充fill_up函数用于填充二值图像中的空洞,使前景区域更完整。

  8. 形态学开运算opening_circle使用圆形结构元素对图像进行形态学开运算,可以去除小的噪声点。

  9. 区域连接connection函数将相邻的前景区域连接起来。

  10. 形状选择select_shape根据指定的形状特征(这里是面积)选择满足条件的区域。

  11. 区域排序sort_region根据指定的特征对区域进行排序。

  12. 最小外接圆smallest_circle在排序后的区域中找到最小的外接圆,这里我们假设这是我们要标记的目标圆形区域。

  13. 生成十字标记gen_cross_contour_xld生成一个十字标记,用于标记找到的圆心位置。

  14. 显示标记:最后,使用dev_display显示原始图像和生成的十字标记。

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

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

相关文章

Docker启动达梦 rman恢复

目录标题 1. 主库备份2. Docker启动备库3. 备库修改属组4. 开始恢复5. 连接数据库配置归档 & Open6. 检查数据 关于达梦数据库(DMDBMS)的主库备份、Docker启动备库、恢复备份以及配置归档和打开数据库的详细步骤。 1. 主库备份 # 使用达梦数据库备…

WPS excel使用宏编辑器合并 Sheet工作表

使用excel自带的工具合并Sheet表,我们会发现需要开通WPS会员才能使用合并功能; 那么WPS excel如何使用宏编辑器进行合并 Sheet表呢? 1、首先我们要看excel后缀是 .xlsx 还是 .xls ;如果是.xlsx 那么 我们需要修改为 .xls 注…

【Python项目】个人密码本文档系统

【Python项目】个人密码本文档系统 技术简介:采用Python技术、Django、MYSQL数据库等实现。 系统简介:系统主要的功能有(1)新建密码本:用户可以创建新的密码本来记录自己的账户与密码; (2&#…

《OpenCV》——模版匹配

文章目录 OpenCV——模版匹配简介模版匹配使用场景OpenCV 中模板匹配的函数参数 OpenCV——模版匹配实例导入所需库读取图片并处理图片对模版图片进行处理进行模版匹配显示模版匹配的结果注意事项 OpenCV——模版匹配简介 OpenCV 是一个非常强大的计算机视觉库,其中…

doc、pdf转markdown

国外的一个网站可以: Convert A File Word, PDF, JPG Online 这个网站免费的,算是非常厚道了,但是大文件上传多了之后会扛不住 国内的一个网站也不错: TextIn-AI智能文档处理-图像处理技术-大模型加速器-在线免费体验 https://…

金融项目实战 06|Python实现接口自动化——日志、实名认证和开户接口

目录 一、日志封装及应用(理解) 二、认证开户接口脚本编写 1、代码编写 1️⃣api目录 2️⃣script目录 2、BeautifulSoup库 1️⃣简介及例子 2️⃣提取html数据工具封装 3、认证开户参数化 一、日志封装及应用(理解) &…

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…

Spring官网构建Springboot工程

注意:基于Idea的 Spring Initializr 快速构建 SpringBoot 工程时需要联网。 1.进入SpringBoot官网 Spring | Home 点击QUICKSTART 点击start.spring.io进入spring initializr 2.选择依赖 3.生成工程 下载好后解压用IDEAD导入即可。

计算机的错误计算(二百一十二)

摘要 利用两个大模型计算 实验表明,两个大模型均进行了中肯的分析。另外,其中一个大模型给出了 Python代码,运行后,结果中有7位错误数字;而一个大模型进行加减运算时出错。 例1. 计算 下面是与一个大模型的对话…

Vue+Echarts+百度地图 实现 路径规划

实现功能: 通过选择 相关调拨,系统自动规划 路径,并且以地图的形式呈现最佳路径 技术难点: 1. vue 结合使用 echarts 2.echarts 在 vue嵌入百度地图,并且做出路径 曲线 最终结果:

【算法】图解两个链表相交的一系列问题

问: 给定两个可能有环也可能无环的单链表,头节点head1和head2。请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null。如果两个链表长度之和为N,时间复杂度请达到O(N…

Go-Zero整合Goose实现MySQL数据库版本管理

推荐阅读 【系列好文】go-zero从入门到精通(看了就会) 教程地址:https://blog.csdn.net/u011019141/article/details/139619172 Go-Zero整合Goose实现MySQL数据库版本管理的教程 在开发中,数据库迁移和版本管理是必不可少的工作。…

JAVA:Spring Boot 集成 JWT 实现身份验证的技术指南

1、简述 在现代Web开发中,安全性尤为重要。为了确保用户的身份,JSON Web Token(JWT)作为一种轻量级且无状态的身份验证方案,广泛应用于微服务和分布式系统中。本篇博客将讲解如何在Spring Boot 中集成JWT实现身份验证…

说一说mongodb组合索引的匹配规则

一、背景 有一张1000多万条记录的大表,需要做归档至历史表,出现了大量慢查询。 查询条件是 "classroomId": {$in: ["xxx", "xxx", ..... "xxx","xxx", "xxx" ] }耗时近5秒,且…

更新java

下载 Java 下载 |神谕 (oracle.com)

CSS3的aria-hidden学习

前言 aria-hidden 属性可用于隐藏非交互内容,使其在无障碍 API 中不可见。即当aria-hidden"true" 添加到一个元素会将该元素及其所有子元素从无障碍树中移除,这可以通过隐藏来改善辅助技术用户的体验: 纯装饰性内容,如…

【Java设计模式-5】装饰模式:给咖啡加点“佐料”

今天咱们要探索一下Java世界里的装饰模式(Decorator Pattern)。为了让这个过程更加生动易懂,咱们就以大家都熟悉的咖啡饮品来举例吧,想象一下,你就是那个咖啡大师,要给顾客调制出各种独特口味的咖啡哦&…

C++(5)

1.运算符重载 头文件 #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> #include <cstring>using namespace std;class myString { private:char *str;//C风格字符串int size0; public:std::string s_str;//转换构造函数myString(const std::string &a…

K8S--配置存活、就绪和启动探针

目录 1 本人基础环境2 目的3 存活、就绪和启动探针介绍3.1 存活探针3.2 就绪探针3.3 启动探针 4 探针使用场景4.1 存活探针4.2 就绪探针4.3 启动探针 5 配置存活、就绪和启动探针5.1 定义存活探针5.2 定义一个存活态 HTTP 请求接口5.3 定义 TCP 的就绪探针、存活探测5.4 定义 g…

【HTML+CSS+JS+VUE】web前端教程-36-JavaScript简介

JavaScript介绍 JavaScript是一种轻量级的脚本语言&#xff0c;所谓脚本语言&#xff0c;指的是它不具备开发操作系统的能力&#xff0c;而是用来编写控制其他大型应用程序的“脚本” JavaScript是一种嵌入式语言&#xff0c;它本身提供的核心语法不算很多 为什么学习JavaScri…