OpenCV与Qt5开发卡尺找圆工具

文章目录


基于OpenCV与Qt5构建卡尺找圆工具

前言

博主近期基于海康Vision Master4.0做了一个工业视觉工程项目,其中就使用到了海康VM的找圆工具,然后博主根据其中的技术原理,也仿照开发了一个类似的功能,基于OpenCV和Qt5构建一个卡尺找圆的工具。卡尺找圆是在计算机视觉领域中常用的技术,用于检测图像中的圆形目标,广泛应用于工业自动化、机器人导航等领域。

卡尺拟合直线参考博主的利用OpenCV与Qt5构建卡尺拟合直线工具(C++实现)


一、卡尺原理

卡尺的原理就是找N个小矩形ROI里面的灰度值突变的地方。即:遍历每个小矩形ROI,分别找到1个点,这个点是灰度突变的峰值。然后把这N个点拟合成直线或者圆。

二、1D边缘提取

  1. 通过Qt5构建一个卡尺圆查找工具形状,由一个个矩形工具构建;

  2. 对平均灰度值(轮廓)进行高斯滤波,目的是让曲线更平滑,消除噪点;

  3. 对平滑后的轮廓求一阶导数;

  4. 根据设置的参数提取边缘点。

三、圆拟合

圆拟合是一种用于从给定的离散点集合中拟合出一个最佳的圆形的方法。它在许多领域中都有广泛的应用,例如计算机视觉、几何建模等。

圆拟合的原理通常基于最小二乘法,旨在找到一个圆形模型,使得给定的点集与该圆形模型之间的残差平方和最小。其步骤如下:

  1. 数据预处理:首先,对于输入的离散点集合,可以进行一些必要的预处理操作,例如去除异常值或噪声点,确保数据质量。

  2. 初始圆形模型估计:为了得到初始的圆形模型,通常可以通过其中的几个点计算出初始的圆心位置和半径估计值。这可以使用一些简单的方法,如三点定圆法(经过任意三个非共线点确定一个圆)或最小二乘法拟合一个初始圆。

  3. 最小二乘拟合:在得到初始的圆形模型估计后,使用最小二乘法来优化拟合结果。最小二乘法通过迭代的方式调整圆心位置和半径的值,使得拟合误差最小化。

  4. 残差计算和优化:在每次迭代中,根据当前的圆心位置和半径,计算每个点到圆的距离,然后将这些距离的平方和作为拟合误差的度量。根据拟合误差,通过优化算法(如非线性最小二乘法或梯度下降法)更新圆心和半径的值。

  5. 收敛判断:对于每次迭代,可以设定一个收敛条件,当满足条件时停止迭代,得到最终的圆形模型。

需要注意的是,圆拟合方法的性能和效果取决于离散点集的分布和噪声程度。对于噪声较多或存在异常点的情况,可能需要使用一些鲁棒性更好的拟合方法,例如 RANSAC(随机抽样一致性)算法来估计圆形模型。

四、软件实现

未使用商业图像处理库,而是纯粹Qt5+OpenCV

  1. 选择要查找圆的图像

  2. 绘制一个矢量圆查找工具

  3. 圆查找

    4.与海康Vision Master对比

    海康Vision Master卡尺工具计算: 圆半径是233.628,圆心(831.874,504.140)

    博主开发的卡尺找圆工具计算 圆半径是233.125,圆心(831.584,503.827)

结束语

由于博主能力有限,本篇文章中提及的方法,也难免会有疏漏之处,希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。

相关推荐
adsadswee5 分钟前
Qt 样式与 QLinearGradient 渐变详解
开发语言·qt·qt样式表·qlineargradient·qss渐变效果
前端大卫16 分钟前
【重磅福利】学生认证可免费领取 Gemini 3 Pro 一年
前端·人工智能
汽车仪器仪表相关领域1 小时前
LambdaCAN:重构专业空燃比测量的数字化范式
大数据·人工智能·功能测试·安全·重构·汽车·压力测试
璞华Purvar1 小时前
地方产投集团数字化平台建设实战:从内控管理到决策赋能(璞华公开课第5期活动回顾)
大数据·人工智能
Byron Loong1 小时前
【半导体】KLA 公司eDR介绍
人工智能
feiyangqingyun1 小时前
Qt优化onvif设备搜索/一键批量搜索/onvif设备模拟器/几千路并发/实时推流/虚拟监控摄像头
qt·onvif模拟器
Jay20021111 小时前
【机器学习】31-32 强化学习介绍 & 状态-动作值函数
人工智能·机器学习
测试人社区-千羽1 小时前
大语言模型在软件测试中的应用与挑战
人工智能·测试工具·语言模型·自然语言处理·面试·职场和发展·aigc
niaonao2 小时前
企业级AI Agent本地化部署实战:基于讯飞星辰与Astron的实战详解(附避坑清单)
人工智能·agent·科大讯飞·astron
ModelWhale2 小时前
实训赋能,平台支撑:和鲸科技助力南京大学人工智能基础课落地
人工智能·科技