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

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.xdnf.cn/news/16020.html

相关文章:

  • 【前端】ikun-pptx编辑器前瞻问题一: pptx的xml样式, 使用html能100%还原么
  • 【计算机网络 篇】TCP基本认识和TCP三次握手相关问题
  • 基于springboot的医院后台管理系统的设计与实现(源码+论文)
  • 【python数据结构算法篇】python算法
  • Ubuntu 虚拟机配置 与Windows互传文件
  • 零事故网站重构:11步标准化流程与风险管理指南
  • PHICOMM(斐讯)N1盒子 - Armbian25.05(Debian 12)刷入U盘/EMMC
  • 【Spring Boot】Spring Boot循环依赖破解:@Lazy与Setter注入的取舍指南(流程图修复版)
  • Oracle RAC+ADG switchover 切换演练流程
  • 【文献笔记】ARS: Automatic Routing Solver with Large Language Models
  • LabVIEW 2025安装包| 免费免激活版下载| 附图文详细安装教程
  • Tailwind CSS快速上手 Tailwind CSS的安装、配置、使用
  • 使用qt编写上位机程序,出现串口死掉无法接受数据的bug
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • 前端学习 4:一些术语集合
  • 自研能管项目开发界面
  • uniapp “requestPayment:fail [payment支付宝:62009]未知错误“
  • Gerrit多仓库对应多邮箱配置办法
  • 上下文工程的系统性优化:从组件到整合架构
  • 【ArcGIS Pro】设置临时存储文件夹(计算缓存数据存放位置)
  • 网络安全实验 番外篇 使用Web登录eNSP中防火墙
  • 【指南】网络安全领域:HW 行动(国家网络安全攻防演练)是什么?
  • opencv简介(附电子书资料)
  • 2025乐彩V8影视系统技术解析:双端原生架构与双H5免签封装实战 双端原生+双H5免签封装+TV级性能优化,一套代码打通全终端生态
  • MySql 运维性能优化
  • 为什么使用扩展坞会降低显示器的最大分辨率和刷新率
  • 数字签名(Digital Signature)
  • JVM:工具
  • A316-HF-I2S-V1:USB TO I2S HiFi音频转换器评估板技术解析
  • C语言---VSCODE的C语言环境搭建