当前位置: 首页 > news >正文

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显示原始图像和生成的十字标记。

相关文章:

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_win…...

MC1.12.2 macOS高清修复OptiFine运行崩溃

最近在玩RLCraft,在windows中运行正常的,移植到macOS中发现如果加载OptiFine模组就会崩溃 报错日志 报错日志如下,其中已经包含了各种版本信息,我就不单独说明了。这里说一下,报错的时候用的是oracle jdk x64的&…...

精选2款.NET开源的博客系统

前言 博客系统是一个便于用户创建、管理和分享博客内容的在线平台,今天大姚给大家分享2款.NET开源的博客系统。 StarBlog StarBlog是一个支持Markdown导入的开源博客系统,后端基于最新的.Net6和Asp.Net Core框架,遵循RESTFul接口规范&…...

转运机器人在物流仓储行业的优势特点

在智能制造与智慧物流的浪潮中,一款革命性的产品正悄然改变着行业的面貌——富唯智能转运机器人,它以卓越的智能科技与创新的设计理念,引领着物流领域步入一个全新的高效、智能、无人的时代。 一、解放双手,重塑物流生态 富唯智能…...

简识MySQL的InnoDB Locking锁的分类

( 参考官方网页: MySQL :: MySQL 5.7 Reference Manual :: 14.7.1 InnoDB Locking) 一、InnoDB Locking锁的分类: 锁的分类英文缩写共享锁Shared LocksS排他锁Exclusive LocksX意向共享锁Intention Shared LocksIS意向排他锁Int…...

如何通过openssl生成.crt和.key

生成 .crt(证书文件)和 .key(私钥文件)的过程通常涉及使用加密工具或库来创建密钥对,并生成证书请求,最终由证书颁发机构(CA)或自签名生成证书。以下是生成 .crt 和 .key 文件的详细…...

.NetCore 使用 NPOI 读取带有图片的excel数据

在.NetCore使用NPOI插件进行批量导入时,获取Excel中的所有的图片数据,存到集合中。 1.定义类PictureData 代码如下: public class PictureData { public byte[] Data { get; set; } } 2.数据集引用 using NPOI.XSSF.UserModel; usin…...

linux上使用update-alternatives来选择软件版本

比如我在linux系统上安装多个版本的gcc /usr/local/gcc-4.8.2/ /usr/local/gcc-8.4.0/ /usr/local/gcc-9.4.0/我要根据需要来切换系统环境下的gcc命令的版本,我可以先 update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.8.2/bin/gcc 1 update-alt…...

【Elasticsearch复合查询】

Elasticsearch复合查询 在Elasticsearch中,复合查询(Compound Queries)是用来封装其他复合查询或叶子查询的查询类型。它们的主要目的是组合这些查询的结果和分数、改变它们的行为或者从查询上下文切换到过滤上下文。 一个常见的复合查询是…...

Java List去重:Stream、HashMap与TreeSet对比分析

在处理包含重复元素的List时&#xff0c;高效地去除重复项是提高数据质量的关键步骤。本文将详细介绍如何运用Java 8 Stream API、HashMap以及TreeSet来实现List去重&#xff0c;并比较它们之间的优缺点及适用场景。 1. 使用Stream API去重 List<String> duplicates …...

大师课程:专业角色AE+AI动画动态设计关键帧学院视频课程 Key Frame Academy – Character Animation Launchpad

使用专业角色动画升级您的动态设计。我将流程的每个阶段分解为易于理解的步骤&#xff0c;以便您可以自信、无缝地创建迫不及待地向客户展示的专业角色动画。 您的创造力就是您的超能力。但说到经验&#xff0c;没有什么比索具过程更能扼杀我的创作火花了……对于许多人来说&am…...

游戏盾SDK如何防护APP攻击

游戏盾SDK如何防护APP攻击&#xff1f;在数字时代的大潮中&#xff0c;APP的安全性是衡量其服务质量与用户信任度的关键指标之一。面对日益复杂多变的网络攻击&#xff0c;如何确保APP在开放的网络环境中稳健运行&#xff0c;成为开发者面临的一大挑战。游戏盾SDK&#xff0c;作…...

Spring Boot 3.x 整合 Logback 日志框架(支持异步写入)

Spring Boot 3.x 整合 Logback 日志框架&#xff08;支持异步写入&#xff09; 在构建任何应用程序时&#xff0c;良好的日志管理都是必不可少的。日志可以帮助我们监控、调试和跟踪代码的运行情况。 1. 添加日志配置文件 在 /resources 资源目录下&#xff0c;创建名为 log…...

从0开始学习搭网站第二天

前言&#xff1a;今天比较惭愧&#xff0c;中午打铲吃了一把&#xff0c;看着也到钻二了&#xff0c;干脆顺手把这个赛季的大师上了&#xff0c;于是乎一直到网上才开始工作&#xff0c;同样&#xff0c;今天的学习内容大多来自mdn社区mdn 目录 怎么把文件上传到web服务器采用S…...

【Unity-Animator】通过 StateMachineBehaviour 实现回调

StateMachineBehaviour 简介 StateMachineBehaviour是一个基类&#xff0c;所有状态脚本都派生自该类。它可以在状态机进入、退出或更新状态时执行代码&#xff0c;而无需编写自己的逻辑来测试和检测状态的变化。这使得开发者可以更方便地处理状态转换时的逻辑&#xff0c;例…...

鸿蒙中自定义slider实现字体大小变化

ui&#xff1a; import { display, mediaquery, router } from kit.ArkUI import CommonConstants from ./CommonConstants; import PreferencesUtil from ./PreferencesUtil; import StyleConstants from ./StyleConstants;// 字体大小 Entry Component struct FontSize {Sta…...

数据结构与算法之栈: LeetCode 71. 简化路径 (Ts版)

简化路径 https://leetcode.cn/problems/simplify-path/description/ 描述 给你一个字符串 path &#xff0c;表示指向某一文件或目录的 Unix 风格 绝对路径 &#xff08;以 ‘/’ 开头&#xff09;&#xff0c;请你将其转化为 更加简洁的规范路径 在 Unix 风格的文件系统中…...

STM32-笔记40-BKP(备份寄存器)

一、什么是BKP&#xff08;备份寄存器&#xff09;&#xff1f; 备份寄存器是42个16位的寄存器&#xff0c;可用来存储84个字节的用户应用程序数据。他们处在备份域里&#xff0c;当VDD电源被切断&#xff0c;他们仍然由VBAT维持供电。当系统在待机模式下被唤醒&#xff0c;或…...

NAS中不同RAID级别特点与适用场景

1. RAID 0&#xff08;条带化&#xff09; 硬盘数量&#xff1a;至少2块。硬盘要求&#xff1a;硬盘容量可以不同&#xff0c;但总容量以最小硬盘为准&#xff08;例如&#xff1a;1TB 2TB 2TB&#xff0c;其中1TB会被浪费&#xff09;。优点&#xff1a; 读写性能显著提升&…...

node.js的进程保活

nodejs的进程保活其实用PM2应该更好用些&#xff0c;不过由于原理其实并不复杂&#xff0c;我们可以自己手写一个服务来干这个工作。 假设我们有一个服务&#xff0c;可以这样来定义下它的相关信息&#xff1a; const svcs[ {"sid":"apl","name"…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...