C# 基于halcon的视觉工作流-章21-点查找

C# 基于halcon的视觉工作流-章21-点查找

本章目标:
一、检测显著点;
二、Harris检测兴趣点;
三、Harris二项式检测兴趣点;
四、Sojka运算符检测角点;
五、Lepetit算子检测兴趣点;

在这里插入图片描述
一、检测显著点
halcon算子points_foerstner用于检测图像中的显著点(重要点),重要点是与邻域不同的点,即图像函数在二维中变化的点,这些变化一方面发生在图像边缘的交叉处(称为连接点、角点),另一方面也发生在颜色或亮度与周围邻域不同的地方(称为区域点)。

与C#联合开发时可用如下方法实现
HOperatorSet.PointsFoerstner(imageReduced, sigmaGrad1, sigmaInt1, sigmaPoints1, threshInhom1, threshShape1, smoothing1, eliminateDoublets1, out crossRow, out crossColumn, out HTuple coRRJunctions, out HTuple coRCJunctions, out HTuple coCCJunctions, out HTuple rowArea, out HTuple columnArea, out HTuple coRRArea, out HTuple coRCArea, out HTuple coCCArea);

其中,输入参数:
imageReduced为输入图像,
sigmaGrad1为梯度平滑量,
sigmaInt1为渐变平滑量,
sigmaPoints1为函数平滑量,
threshInhom1为非均区域分割阈值,
threshShape1为点区域分割的阈值,
smoothing1为平滑方法,
eliminateDoublets1为消除多重检测点,

输出参数:
crossRow为连接点的行坐标,
crossColumn为连接点的列坐标,
coRRJunctions为连接点的协方差矩阵的行部分,
coRCJunctions为连接点的协方差矩阵的混合部分,
coCCJunctions为连接点的协方差矩阵的列部分,
rowArea为区域点的行坐标,
columnArea为区域点的列坐标,
coRRArea为区域点的协方差矩阵的行部分,
coRCArea为区域点的协方差矩阵的混合部分,
coCCArea为区域点的协方差矩阵的列部分

效果如下图
在这里插入图片描述
二、Harris检测兴趣点
halcon算子points_harris 基于平滑矩阵从图像中提取兴趣点。
与C#联合开发时可用如下方法实现
HOperatorSet.PointsHarris(imageReduced, sigmaGrad2, sigmaSmooth2, alpha2, threshold2, out crossRow, out crossColumn);

其中,imageReduced为输入图像,
sigmaGrad2为梯度平滑量,
sigmaSmooth2为渐变平滑量,
alpha2为平方梯度矩阵的平方轨迹的权重,
threshold2为点的最小过滤器响应,
crossRow为输出点的行坐标,
crossColumn为输出点的列坐标

效果如下图
在这里插入图片描述
三、Harris二项式检测兴趣点
halcon算子points_harris_binomial 是 Harris 角点检测的二项式近似实现,通过优化计算方式提升运算速度,同时保持与标准 Harris 检测相似的精度。

与C#联合开发时可用如下方法实现
HOperatorSet.PointsHarrisBinomial(imageReduced, maskSizeGrad3, maskSizeSmooth3, alpha3, threshold3, subpix3, out crossRow, out crossColumn);

其中,imageReduced为输入图像,
maskSizeGrad3为二项式平滑量,
maskSizeSmooth3为渐变平滑量,
alpha3为平方梯度矩阵的平方轨迹的权重,
threshold3为点的最小过滤器响应,
subpix3为打开或关闭亚像素细化,
crossRow为输出点的行坐标,
crossColumn为输出点的列坐标

效果如下图
在这里插入图片描述
四、Sojka运算符检测角点
halcon算子points_sojka 专用于检测图像中的‌角点‌(两条非共线边缘的交点),通过分析局部邻域梯度方向变化实现高精度定位。

与C#联合开发时可用如下方法实现
HOperatorSet.PointsSojka(imageReduced, maskSize4, sigmaW4, sigmaD4, minGrad4, minApparentness4, minAngle4, subpix4, out crossRow, out crossColumn);

其中,imageReduced为输入图像,
maskSize4为过滤器尺寸,
sigmaW4为权重函数的西格玛根据到角候选的距离,
sigmaD4为西格玛的权重函数表示到理想灰度值边缘的距离,
minGrad4为梯度最小值,
minApparentness4为外观最小值,
minAngle4为角点方向变化的阈值(弧度),
subpix4为角点的亚像素精确计算,
crossRow为输出点的行坐标,
crossColumn为输出点的列坐标

效果如下图
在这里插入图片描述
五、Lepetit算子检测兴趣点
halcon算子points_lepetit 是 Halcon 中用于‌快速提取兴趣点‌(如角点、水滴状结构)的高效算子,特别适合实时性要求高的场景。

与C#联合开发时可用如下方法实现
HOperatorSet.PointsLepetit(imageReduced, radius5, checkNeighbor5, minCheckNeighborDiff5, minScore5, subpix5, out crossRow, out crossColumn);

其中,imageReduced为输入图像,
radius5为圆半径,
checkNeighbor5为圆圈上已检查的邻居数量,
minCheckNeighborDiff5为每个圆点的灰度值差阈值,
minScore5为最小比分,
subpix5为角点的亚像素精确计算,
crossRow为输出点的行坐标,
crossColumn为输出点的列坐标

效果如下图
在这里插入图片描述
halcon中点查找还有很多算子,本文仅描述以上几种。

上述内容需要一定的技术功底,本章至此已结束,欢迎阅读下章,谢谢!

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

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

相关文章

(11)机器学习小白入门YOLOv:YOLOv8-cls epochs与数据量的关系

YOLOv8-cls epochs与数据量的关系 (1)机器学习小白入门YOLOv :从概念到实践 (2)机器学习小白入门 YOLOv:从模块优化到工程部署 (3)机器学习小白入门 YOLOv: 解锁图片分类新技能 (4)机器学习小白入门YOLOv :图片标注实操手册 (5)机…

Grafana | 如何将 11.x 升级快速到最新 12.x 版本?

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(Dev…

Dubbo + Spring Boot + Zookeeper 快速搭建分布式服务

Dubbo Spring Boot Zookeeper 快速搭建分布式服务 本文将详细介绍如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一个简单的分布式服务调用场景,包含服务提供者(Provider)、服务消费者(Consumer)及公共接口&…

五分钟掌握 TDengine 数据文件的工作原理

小 T 导读:今天我们来探讨一下——TDengine中的时序数据到底是如何存储的? 在上一期的文章《五分钟掌握 TDengine 时序数据的保留策略》中,我们知道了TDengine是如何按照时间段对数据进行分区来管理数据的。 接下来,我们和大家一起…

Python爬虫实战:研究http-parser库相关技术

一、研究背景与意义 在当今数字化时代,网络数据蕴含着巨大的价值。从商业决策、学术研究到社会治理,对海量网络信息的有效采集与分析至关重要。网络爬虫作为数据获取的核心工具,其性能与稳定性直接影响数据质量。然而,随着互联网技术的发展,网站反爬机制不断升级,传统爬…

Go语言实战案例-批量重命名文件

在《Go语言100个实战案例》中的 文件与IO操作篇 - 案例17:批量重命名文件 的完整内容,适合初学者实践如何使用 Go 操作文件系统并批量处理文件名。🎯 案例目标实现一个小工具,能够批量重命名指定目录下的所有文件,例如…

基于单片机非接触红外测温系统

传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 本设计实现了一种基于单片机的非接触式红外测温系统,适用于快速、安全测量物体表面温…

Python 入门手札:从 0 到会--第十天Python常用的第三方库Numpy,Pandas,Matplotlib

目录 一、Numpy 1.NumPy 是什么? 1.1安装numpy 1.2 导入numpy模块 2.NumPy 的核心:ndarray 2.1 什么是 ndarray? 2.2 ndarray 的创建方式 2.3 常见属性(用于查看数组结构) 2.4 ndarray 的切片与索引 2.5 ndarr…

mysql 性能优化之Explain讲解

EXPLAIN是 MySQL 中用于分析查询执行计划的重要工具,通过它可以查看查询如何使用索引、扫描数据的方式以及表连接顺序等信息,从而找出性能瓶颈。以下是关于EXPLAIN的详细介绍和实战指南:1. EXPLAIN 基本用法在SELECT、INSERT、UPDATE、DELETE…

Redis 连接:深度解析与最佳实践

Redis 连接:深度解析与最佳实践 引言 Redis 作为一款高性能的内存数据结构存储系统,在当今的互联网应用中扮演着越来越重要的角色。高效的 Redis 连接管理对于保证系统的稳定性和性能至关重要。本文将深入探讨 Redis 连接的原理、配置以及最佳实践,帮助读者更好地理解和应…

C语言---VSCODE的C语言环境搭建

文章目录资源下载配置环境验证资源下载 站内下载 配置环境 解压压缩包,复制以下文件的路径 打开主页搜索系统环境变量 点击环境变量 选择系统变量中的Path,点击编辑 在最后面添加路径。 添加完成记得关机重启。 验证 重启电脑之后打开在Power…

ojdbc对应jdk版本附下载地址(截止20250722)

可以从Oracle官网查看, JDBC and UCP Downloads page

Redis为什么被设计成是单线程的?

Redis单线程模型解析 当我们说Redis是单线程时,特指"其网络IO和键值对读写操作由单个线程完成"。实际上,Redis仅网络请求模块和数据操作模块采用单线程设计,而持久化存储、集群支持等其他模块都采用了多线程架构。 事实上,Redis从4.0版本就开始对部分命令实现了…

基础流程图

一、常用符号及定义二、 画图基础规则1、从上至下,从左至右流向顺序。2、开始符号只能有一个出口。3、进程符号不做校验逻辑。4、相同流程图,符号大小应为一致。5、引用流程,不重复绘制。6、路径符号尽量避免交叉重叠。7、同一路径&#xff0…

C# 结构体

目录 1.如何定义一个结构体(struct 关键字) 2.如何使用一个结构体 3.如何修改一个数据 4.如何让去访问一个学生的信息 5、结构体数组 练习 1.如何定义一个结构体(struct 关键字) C#中public 、private、protect的区别 结构…

在Python中操作Word

生成请假条1.准备一个文件“template.docx”,内容如下。2.安装docxtpl库。pip install docxtpl3.执行代码,替换字典内容。from docxtpl import DocxTemplate# 读取定义模板文件 tpl DocxTemplate(template.docx) # 创建子文档 sd tpl.new_subdoc() # 添…

网络协议(四)网络层 路由协议

在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装为MAC帧。 由于路由器的隔离,IP网络中无法通过广播MAC地址来完成跨网络的寻址,因此在网络层中只…

(后者可以节约内存/GPU显存)Pytorch中求逆torch.inverse和解线性方程组torch.linalg.solve有什么关系

假设我们要求A的逆矩阵,正常情况下我们使用如下命令: torch.inverse(A)但是本人发现,这个函数还挺消耗显存的。想到求逆矩阵和求线性方程组有很大关系。从而可以使用torch.linalg.solve来求解逆矩阵,关键是其显存消耗小。 求解逆矩…

esp32 idf 使用http访问json直接拼接content_length = -1

CMakeLists.txt添加网络请求库 REQUIRES esp_http_client效果图D (14235) HTTP_CLIENT: content_length -1 需要直接拼接content_length才能打印#include <stdio.h> #include <string.h> #include "esp_log.h" #include "esp_system.h" #inc…

[Github】下载使用github上的源代码

一、安装Anoconda 二、安装 Git &#xff08;1&#xff09;安装 方法 1&#xff1a;通过 Git 官网安装​ 下载 Git for Windows&#xff1a;https://git-scm.com/download/win运行安装程序&#xff0c;​​确保勾选 "Add Git to PATH"​​&#xff08;重要&#…