灰度重心法

📅 2026/7/7 3:51:37
灰度重心法
灰度重心Gray Centroid是工业视觉中最经典的亚像素定位方法之一。HALCON、OpenCV、VisionPro、Matrox等视觉软件里面都大量使用了它通常作为算法中的一步而不是全部。一、为什么会有灰度重心假设有一条黑线□□□□□□□□□□□□□□ □□□□□□□□□□□□□□ ████████████████ ████████████████ □□□□□□□□□□□□□□ □□□□□□□□□□□□□□如果直接找边缘只能得到 x 20 这是整数像素,但是真实边缘可能在 x 20.37怎么办让灰度值参与计算。例如255 255 250 220 180 120 60 20 0二、灰度重心公式1、什么叫重心假设有一根木棍,有三个小球那么重心在哪里 物理告诉我们即 质量 × 位置 / 总质量 例如灰度重心其实完全一样2、灰度重心公式假设 二维灰度X方向那么X方向 计算左列 0*20 0*100 0*200中间 1*501*2551*50355右列 2*202*1002*20280分子综合 0355280635分母 205020100255100205020565x635/5651.124Y方向最终(1.124, 1.000)就是亚像素中心。x → 0 1 2 3 4 y0 0 0 0 0 0 y1 0 20 60 20 0 y2 0 60 200 80 0 y3 0 20 80 40 0 y4 0 0 0 0 0可以看出中心区域最亮右下方向略亮因此真实中心会偏向右下而不是整数点 (2,2)。第一步计算总灰度∑I2060206020080208040580第二步计算 x 重心按列累加第1列x1206020100第2列x26020080340第3列x3208040140分子1×1002×3403×1401006804201200因此第三步计算 y 重心按行累加y1206020100y26020080340y3208040140分子1×1002×3403×1401200因此三、总结优点与局限优点数学模型简单只需要一次加权求和计算速度快非常适合实时工业检测能达到亚像素精度对圆形光斑、激光点、LED亮点等效果很好。局限对噪声敏感背景灰度会拉偏重心因此通常需要先做阈值分割或背景扣除当目标灰度分布不对称时重心会产生系统偏差不适合直接用于复杂边缘定位边缘检测通常结合梯度、曲线拟合或Steger算法获得更高精度。与 Steger 算法的关系整数像素 │ ▼ 最大灰度位置 │ ▼ 灰度重心利用灰度作为权重 │ ▼ 二次曲线拟合局部拟合峰值 │ ▼ 高斯拟合拟合光斑模型 │ ▼ Steger 算法高斯导数 Hessian 特征值提取线中心灰度重心是最基础、最容易手推的亚像素定位方法Steger 算法则是在此基础上进一步利用图像导数和局部曲率信息对激光条纹等线状目标实现更稳定、更高精度的中心提取因此在工业视觉中应用非常广泛。