使用OpenCV求解物体(轮廓)的旋转角度的案例

1 前言(PCA)

在本人早期的博客 (求解图像旋转角度的方法_thequitesunshine007的博客-CSDN博客_计算图像旋转角度)里面介绍了 3种不同的方式去求解图像(轮廓)的旋转角度。

今天着重提一下使用PCA(Principal Component Analysis)对轮廓进行主成分分析,进而得出物体的旋转角度。

PCA是机器学习里面进行数据降维的常用方法之一。

使用OpenCV求解物体(轮廓)的旋转角度的案例_第1张图片

假设你有一组2D点,如上图所示。每个维度都对应于您感兴趣的一个特性。在这里,有些人可能会说点是按随机顺序设置的。然而,如果看得更仔细,你会看到一个线性模式(用蓝线表示),这是很难忽略的。主成分分析的一个关键点是降维。降维是指减少给定数据集的维数的过程。例如,在上述情况下,可以将点集近似为一条直线,从而将给定点的维数从2D降为1D。

此外,您还可以看到,这些点在蓝线上的变化最大,比在特征1或特征2轴上的变化更大。这意味着如果你知道一个点沿着蓝线的位置,你就比只知道它在Feature 1轴或Feature 2轴上的位置有更多关于这个点的信息。

因此,PCA允许我们找到数据变化最大的方向。事实上,在图中的点集上运行PCA的结果由两个称为特征向量的向量组成,它们是数据集的主成分。

你可能感兴趣的:(OpenCV,人工智能)