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)

结束语

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

相关推荐
ZTLJQ1 分钟前
基于机器学习的三国时期诸葛亮北伐失败因素量化分析
人工智能·算法·机器学习
划水哥~7 分钟前
创建QMainWindow菜单栏
开发语言·c++·qt
強云11 分钟前
界面架构 - 主流架构(Qt)
qt·架构
赵钰老师32 分钟前
【Deepseek、ChatGPT】智能气候前沿:AI Agent结合机器学习与深度学习在全球气候变化驱动因素预测中的应用
人工智能·python·深度学习·机器学习·数据分析
AIGC-Lison33 分钟前
【CSDN首发】Stable Diffusion从零到精通学习路线分享
人工智能·ai·stable diffusion·aigc·sd
AI绘画咪酱33 分钟前
Stable Diffusion|Ai赋能电商 Inpaint Anything
人工智能·ai·ai作画·stable diffusion·sd·ai教程·sd教程
ruokkk34 分钟前
Spring AI MCP 客户端实战:轻松连接高德地图等工具
人工智能
_一条咸鱼_35 分钟前
AI Agent 工作原理深入剖析
人工智能
飞哥数智坊37 分钟前
AI编程实战:数据大屏生成初探
人工智能
蚝油菜花38 分钟前
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
人工智能·开源