OpenCV - 如何检测和测量两帧之间的角度?

Jul*_*lio 5 c# c++ opencv angle rotation

我正在尝试理解和使用OpenCV.我想知道是否有可能找到并测量两帧之间的角度.

我解释说:凸轮是固定的,框架可以围绕中心旋转,不会移动.现在我设法手动旋转,我希望能够比较帧并返回角度.例如 :

double getRotation(Image img1, Image img2) {
  //Compare the frames

  //Return the value
}
Run Code Online (Sandbox Code Playgroud)

然后我按照这个角度旋转.

And*_*oev 3

如果您能够检测帧上的静态对象(例如背景),那么您可能会cvGoodFeaturesToTrack在背景上找到名为 good_features_to_track ( ) 的点,并使用optical_flow ( cvCalcOpticalFlowPyrLK) 跟踪这些点。

如果旋转仅在“xy”平面上,您可以使用 检测旋转cvGetAffineTransform

由于只允许旋转(不允许平移和缩放),因此使用由 获得的变换矩阵来确定旋转角度并不困难cvGetAffineTransform。该矩阵看起来像(参见维基百科):

在此输入图像描述

其中θ是旋转角度