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

【测量】知识点

测量的核心是在高精度的定位基础上,通过数学方法计算几何尺寸。

1. 亚像素定位算法 (Sub-pixel Localization)

这是高精度测量的基石,目标是将特征点(如边缘、角点)的定位精度突破物理像素的限制,达到0.1甚至0.01像素的级别。

基于矩的方法 (Moment-based)

  • 原理: 利用灰度图像的灰度分布矩来计算灰度重心。对于边缘,通过计算边缘附近区域的灰度重心来亚像素定位边缘位置。

  • 公式(一维边缘灰度重心): sub_pixel_x = Σ(x * I(x)) / Σ(I(x)),其中x是像素坐标,I(x)是灰度值。

  • 特点: 计算速度快,适用于光斑、刀边等特征的定位。

  • 优点: 计算非常快,适用于实时系统。

  • 缺点: 假设光条灰度分布是对称的,如果分布不对称(如受噪声干扰),精度会下降。

  • 改进: 可以先对profile进行高斯平滑,再计算重心,以提高抗噪性。

  • 示例:“在测量芯片焊球高度的项目中,需要亚像素精度定位焊球顶点。我使用了灰度重心法对激光线扫图像中的激光光条中心进行提取。首先通过高斯滤波降噪,然后通过简单的阈值分割粗定位光条区域,最后在每一列像素上计算该区域的灰度重心,作为光条中心的亚像素坐标。这种方法将我们的定位重复精度从1个像素稳定提升到了0.2个像素以内。”

#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>/*** @brief 使用灰度重心法提取激光线的亚像素中心坐标(针对单行或单列)* @param profile 输入的灰度剖面数据(可以是单行或单列的像素灰度值)* @return 亚像素精度的中心位置*/
double calculateSubpixelCenter(const cv::Mat& profile) {double sumIntensity = 0.0;double weightedSum = 0.0;// 确保profile是单行或单列的向量for (int i = 0; i < profile.cols; i++) { double intensity = profile.at<uchar>(0, i); // 获取灰度值sumIntensity += intensity;we

文章转载自:

http://OyMJxsav.sgpny.cn
http://Odk1M2Ur.sgpny.cn
http://5Z3w5Bpq.sgpny.cn
http://T0vMGYwW.sgpny.cn
http://hSVBdkdM.sgpny.cn
http://xY76bRpg.sgpny.cn
http://JHCeLhht.sgpny.cn
http://lSn5MC8Q.sgpny.cn
http://gV5MsYdQ.sgpny.cn
http://ejywkb8H.sgpny.cn
http://axqhwzBN.sgpny.cn
http://JbbsPW9E.sgpny.cn
http://wOdFwHJp.sgpny.cn
http://ZrNrJtED.sgpny.cn
http://QyMOlQXC.sgpny.cn
http://J8gz3YGC.sgpny.cn
http://4Q6iyZcI.sgpny.cn
http://5zywi0y2.sgpny.cn
http://1quIzHhu.sgpny.cn
http://tPPGVG5D.sgpny.cn
http://DRf3phMx.sgpny.cn
http://qVdu7Avu.sgpny.cn
http://OborMjDM.sgpny.cn
http://K088wYID.sgpny.cn
http://nA52bMwG.sgpny.cn
http://5Vka4bez.sgpny.cn
http://6bnzz148.sgpny.cn
http://zHDf1EdL.sgpny.cn
http://5Hit0ELE.sgpny.cn
http://sJmTA0t2.sgpny.cn
http://www.dtcms.com/a/377555.html

相关文章:

  • 开始 ComfyUI 的 AI 绘图之旅-ControlNet(六)
  • 楼宇自控系统监控建筑变配电系统:功效体现在安全与节能层面
  • 分布式存储:RustFS与MinIO全面对比
  • 【第24话:定位建图】 SLAM回环检测方法及原理详细介绍
  • Electron 核心模块速查表
  • SafeEar:浙大和清华联合推出的AI音频伪造检测框架,错误率低至2.02%
  • vue2+jessibuca播放h265视频
  • 智普科技推出 Claude 用户平滑迁移方案,GLM-4.5 模型全面开放
  • IIS 部署 asp.net core 项目时,出现500.19、500.31问题的解决方案
  • ASP.NET Core 中的简单授权
  • 可遇不可求的自动化运维工具 | 2 | 实施阶段一:基础准备
  • Golang安装笔记
  • 【记录】Docker|Docker内部访问LInux主机上的Ollama服务
  • MySQL 日期时间类型:从入门到精通的核心指南
  • git 同时推送两个不同平台的版本管理库
  • SoC日志管理
  • 微服务网关全解析:从入门到实践
  • 《sklearn机器学习——数据预处理》类别特征编码
  • #C语言——刷题攻略:牛客编程入门训练(十一):攻克 循环控制(三),轻松拿捏!
  • 深入剖析 Chrome PartitionAlloc 内存池源码原理与性能调优实践
  • Shell 脚本编程:函数
  • C++ STL 容器的一个重要成员函数——`emplace_back`
  • vue3:触发自动el-input输入框焦点
  • python range函数练习题
  • Q2(门座式)起重机司机的理论知识考试考哪些内容?
  • 企业微信消息推送
  • 顺序表:数据结构中的基础线性存储结构
  • 什么是X11转发?
  • OpenCV计算机视觉实战(24)——目标追踪算法
  • 4.2 I2C通信协议