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

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.dtcms.com/a/293152.html

相关文章:

  • freertos任务调度关键函数理解 vTaskSwitchContext
  • 编程基础:常见数据类型详解
  • Kubernetes 服务发布基础
  • 从云端到指尖:MNN实现端侧大模型“量子压缩”
  • Flask转发 [Siemens.Sistar.Api.dll] Braumat API--->DLL to restAPI
  • 鸿蒙开发:弹出库更新至1.2.2版本,新增模态页面弹出
  • Java中的泛型数据
  • K8S基础环境部署
  • 赋能未来数学课堂——基于Qwen3、LangChain与Agent架构的个性化教辅系统研究
  • Rocky Linux 9 快速安装 Node.js
  • 遇到JAVA问题
  • SQL 基础案例解析
  • Spring Boot 使用Jasypt加密
  • 我们能否承担微服务带来的复杂性和运维成本?
  • wps dispimg python 解析实现参考
  • ROS个人笔记
  • 【音视频协议篇】RTMP协议
  • A316-HF-I2S-V1:USB TO I2S HiFi音频转换器评估板技术解析
  • Flutter基础(前端教程①⑨-margin-padding)
  • 构建智能视频中枢--多路RTSP转RTMP推送模块在轨道交通与工业应用中的技术方案探究
  • List和Map的区别
  • Java值传递和构造函数
  • Java HttpClient使用手册
  • 【C语言进阶】动态内存管理(1)
  • Model Control Protocol 使用MCP进行各种任务适配,调用工具和资源进行客户端开发
  • OneCode3.0 UI组件注解详解手册
  • 前端之jQuery
  • Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
  • PCIe Base Specification解析(二)
  • Linux笔记2——常用命令-1