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

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》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)。双曲线有两个分支,每个分支都向其对应的焦点汇聚。偏心率越大,双曲线的开口越宽。

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

相关推荐
禁默6 小时前
2024年图像处理、多媒体技术与机器学习
图像处理·人工智能·microsoft
发呆小天才O.oᯅ11 小时前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
liuming199214 小时前
Halcon中histo_2dim(Operator)算子原理及应用详解
图像处理·人工智能·深度学习·算法·机器学习·计算机视觉·视觉检测
一念之坤2 天前
14篇--模板匹配
图像处理·python·opencv·计算机视觉
机器视觉李小白2 天前
Halcon 机器视觉案例 之 药剂液面高度测量
图像处理·笔记·halcon·机器视觉
老艾的AI世界3 天前
AI视频抠图来了!还可以替换视频背景,附下载链接
图像处理·人工智能·深度学习·神经网络·目标检测·机器学习·视频抠图·视频去背景·ai视频抠图·视频背景替换
计算机科研之友(Friend)3 天前
海外招聘丨埃因霍温科技大学—安全人工智能自动机器学习博士后
图像处理·人工智能·科技·机器学习·信号处理
Mobius80863 天前
探索 Seaborn Palette 的奥秘:为数据可视化增色添彩
图像处理·python·信息可视化·数据分析·pandas·matplotlib·数据可视化
杨德杰3 天前
ISP算法之坏点校正DPC(二):Verilog硬件实现与仿真
图像处理·isp·isp pipline·dpc·坏点校正
Tiandaren3 天前
从Python到C++的转变之路——如何高效复现C++开源项目 || Windows || Visual Studio || 持续更新
开发语言·c++·图像处理·人工智能·python·深度学习·开源