图像区域的最小二乘拟合椭圆与偏心率

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P312

拟合椭圆

在椭圆中,焦距是指两个焦点之间的距离,通常表示为 2 c 2c 2c。这里的 c c c 是从椭圆的中心到任一焦点的距离。因此,当提到椭圆的焦距为 2 c 2c 2c 时,意味着从一个焦点到另一个焦点的距离是 2 c 2c 2c。

椭圆的一些基本参数及其关系如下:

  • 半长轴 ( a a a):椭圆上任意一点到两个焦点的距离之和的一半。它是椭圆最长直径的一半。
  • 半短轴 ( b b b):椭圆最短直径的一半。
  • 焦距 ( 2 c 2c 2c):两焦点之间的距离,其中 c = a 2 − b 2 c = \sqrt{a^2 - b^2} c=a2−b2 。

这个公式表明了椭圆的焦距 2 c 2c 2c 与其半长轴 a a a 和半短轴 b b b 之间的关系。通过这个关系式,可以计算出给定半长轴和半短轴的椭圆的焦距。


对区域最小二乘拟合椭圆,它的形状和方向能够很好地代表该区域的形状和方向。

计算 x x x轴与椭圆长轴之间的角度(以度为单位),

  1. 计算椭圆的长轴和短轴

    • 椭圆的长轴和短轴可以通过计算图像区域的二阶矩(协方差矩阵)得到。
    • 协方差矩阵的特征向量和特征值分别对应于椭圆的主轴方向和轴长。
  2. 确定长轴的方向

    • 协方差矩阵的最大特征值对应的特征向量表示椭圆的长轴方向。
  3. 计算角度

    • 假设 x x x 轴正方向为水平向右(0 度),长轴方向向量与 x x x 轴之间的夹角即为所求角度。
    • 可以使用反正切函数(arctan2)来计算两个向量之间的夹角。

具体步骤

根据图像区域计算二阶矩( m 00 , m 10 , m 01 , m 11 , m 20 , m 02 m_{00}, m_{10}, m_{01}, m_{11}, m_{20}, m_{02} m00,m10,m01,m11,m20,m02)

  1. 计算图像区域的协方差矩阵
    假设我们有一个图像区域 I ( x , y ) I(x, y) I(x,y),其中 x x x 和 y y y 是像素的位置坐标。我们可以通过以下步骤计算该区域的协方差矩阵:

(1) 计算质心 :首先计算图像区域的质心 ( x ˉ , y ˉ ) (\bar{x}, \bar{y}) (xˉ,yˉ)。
x ˉ = ∑ x , y x ⋅ I ( x , y ) ∑ x , y I ( x , y ) = m 10 \bar{x} = \frac{\sum_{x,y} x \cdot I(x, y)}{\sum_{x,y} I(x, y)}=m_{10} xˉ=∑x,yI(x,y)∑x,yx⋅I(x,y)=m10
y ˉ = ∑ x , y y ⋅ I ( x , y ) ∑ x , y I ( x , y ) = m 01 \bar{y} = \frac{\sum_{x,y} y \cdot I(x, y)}{\sum_{x,y} I(x, y)}=m_{01} yˉ=∑x,yI(x,y)∑x,yy⋅I(x,y)=m01

(2) 计算协方差矩阵 :协方差矩阵 C C C 是一个 2x2 的矩阵:
C = ( σ x x σ x y σ y x σ y y ) C = \begin{pmatrix} \sigma_{xx} & \sigma_{xy} \\ \sigma_{yx} & \sigma_{yy} \end{pmatrix} C=(σxxσyxσxyσyy)

其中:
σ x x = ∑ x , y ( x − x ˉ ) 2 ⋅ I ( x , y ) ∑ x , y I ( x , y ) = m 20 m 00 \sigma_{xx} = \frac{\sum_{x,y} (x - \bar{x})^2 \cdot I(x, y)}{\sum_{x,y} I(x, y)}= \frac {m_{20}} {m_{00}} σxx=∑x,yI(x,y)∑x,y(x−xˉ)2⋅I(x,y)=m00m20
σ y y = ∑ x , y ( y − y ˉ ) 2 ⋅ I ( x , y ) ∑ x , y I ( x , y ) = m 02 m 00 \sigma_{yy} = \frac{\sum_{x,y} (y - \bar{y})^2 \cdot I(x, y)}{\sum_{x,y} I(x, y)}= \frac {m_{02}} {m_{00}} σyy=∑x,yI(x,y)∑x,y(y−yˉ)2⋅I(x,y)=m00m02
σ x y = σ y x = ∑ x , y ( x − x ˉ ) ( y − y ˉ ) ⋅ I ( x , y ) ∑ x , y I ( x , y ) = m 11 m 00 \sigma_{xy} = \sigma_{yx} = \frac{\sum_{x,y} (x - \bar{x})(y - \bar{y}) \cdot I(x, y)}{\sum_{x,y} I(x, y)}= \frac {m_{11}} {m_{00}} σxy=σyx=∑x,yI(x,y)∑x,y(x−xˉ)(y−yˉ)⋅I(x,y)=m00m11

  1. 求解协方差矩阵的特征值和特征向量

    • 求解特征方程 ∣ C − λ I ∣ = 0 |C - \lambda I| = 0 ∣C−λI∣=0 得到特征值 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2( λ 1 ≥ λ 2 \lambda_1 \geq \lambda_2 λ1≥λ2)。
    • 对应的特征向量 v 1 , v 2 \mathbf{v}_1, \mathbf{v}_2 v1,v2,其中 v 1 \mathbf{v}_1 v1 对应长轴方向。
  2. 计算角度

    • 特征向量 v 1 = ( v 1 x , v 1 y ) \mathbf{v}1 = (v{1x}, v_{1y}) v1=(v1x,v1y)。
    • 角度 θ \theta θ 为:
      θ = arctan ⁡ 2 ( v 1 y , v 1 x ) \theta = \arctan2(v_{1y}, v_{1x}) θ=arctan2(v1y,v1x)
    • 注意,arctan2 返回的角度范围是 [ − π , π ] [- \pi, \pi] [−π,π],需要将其转换为 [ − 9 0 ∘ , 9 0 ∘ ] [-90^\circ, 90^\circ] [−90∘,90∘]:
      θ = { θ × 180 π if θ ≥ 0 ( θ + 2 π ) × 180 π if θ < 0 \theta = \begin{cases} \theta \times \frac{180}{\pi} & \text{if } \theta \geq 0 \\ (\theta + 2\pi) \times \frac{180}{\pi} & \text{if } \theta < 0 \end{cases} θ={θ×π180(θ+2π)×π180if θ≥0if θ<0
      • 若 θ > 9 0 ∘ \theta > 90^\circ θ>90∘,则 θ = 18 0 ∘ − θ \theta = 180^\circ - \theta θ=180∘−θ。

一个例子

偏心率(Eccentricity)

偏心率(Eccentricity)是一个数学概念,主要用于描述圆锥曲线(包括圆、椭圆、抛物线和双曲线)的形状。偏心率的值可以帮助我们了解曲线的开口程度或偏离圆形的程度。以下是几种常见圆锥曲线的偏心率特点:

  1. :偏心率为 0。这意味着圆的所有点到中心的距离都是相同的,没有任何偏离。

  2. 椭圆:偏心率介于 0 和 1 之间(0 < e < 1)。偏心率越接近 0,椭圆越接近圆形;偏心率越接近 1,椭圆的扁平度越高,即两个焦点之间的距离越大。

  3. 抛物线:偏心率为 1。抛物线是一种特殊的圆锥曲线,它的一侧无限延伸,而另一侧则向一个焦点汇聚。

  4. 双曲线:偏心率大于 1(e > 1)。双曲线有两个分支,每个分支都向其对应的焦点汇聚。偏心率越大,双曲线的开口越宽。

禹晶、肖创柏、廖庆敏《数字图像处理》资源二维码

相关推荐
2401_841495642 天前
【计算机视觉】分水岭实现医学诊断
图像处理·人工智能·python·算法·计算机视觉·分水岭算法·医学ct图像分割
格林威2 天前
常规可见光相机在工业视觉检测中的应用
图像处理·人工智能·数码相机·计算机视觉·视觉检测
扶尔魔ocy2 天前
【QT常用技术讲解】multimedia实现指定分辨率打开摄像头
图像处理·qt
格林威2 天前
工业视觉检测里的 “柔性” 是什么?
图像处理·人工智能·深度学习·yolo·计算机视觉·视觉检测
格林威2 天前
不同光谱的工业相机有哪些?能做什么?
图像处理·人工智能·深度学习·数码相机·计算机视觉·视觉检测
CiLerLinux2 天前
第三十八章 ESP32S3 SPIFFS 实验
图像处理·人工智能·单片机·嵌入式硬件
要做朋鱼燕3 天前
【OpenCV】图像处理入门:从基础到实战技巧
图像处理·人工智能·opencv
不枯石3 天前
Matlab通过GUI实现点云的随机一致性(RANSAC)配准
开发语言·图像处理·算法·计算机视觉·matlab
那雨倾城3 天前
PiscCode:基于OpenCV的前景物体检测
图像处理·python·opencv·计算机视觉
CiLerLinux3 天前
第三十五章 ESP32S3 摄像头实验
图像处理·人工智能·计算机视觉