c – 如何在偏航改变时找到风力发电机叶片形成的角度?

这是Here-
How to find angle formed by the blades of a wind turbine with respect to a horizontal imaginary axis?问题的延续

我决定使用以下方法 –
从相机中取出相框并将其放入循环中.
执行Canny边缘检测.
执行HoughLinesP以检测图像中的线条.
寻找刀角:
对图像执行概率Hough线变换.如已知的那样,将刀片线限制在刀片的长度上.
返回的值将包含检测到的行的起点和终点.由于没有背景噪声,因此它给出了刀片线的起点和终点,图像将具有刀片线.
现在,通过找到检测到的刀片线的矢量找到带有矢量(1,0)的点积,或者我们可以使用atan2来找到检测到的所有点相对于水平线的相对角度.

问题:
当涡轮的偏航角改变并且不直接面向摄像机时,如何计算形成的叶片角度?
这个想法是在从头向上看时旋转回形状时基本上映射角度.从我能够理解的,我以为我会找到单应矩阵,分解矩阵以获得旋转,转换为欧拉角以计算从原始轴的偏移,然后以该角度移动所有轴.然而,这只是一个模糊的想法,没有具体的计划继续下去.
或者我开始尝试找到投影矩阵,然后获取相机矩阵和旋转矩阵?我完全迷失在这个帐户上并感到不知所措的许多功能……

我遇到的其他事情是透视变换,solvepnp ..

如果有人能提出另一种方法来解决这个问题会很棒吗?任何代码段链接都会有所帮助.我对OpenCV并不熟悉,如果有任何帮助,我将不胜感激.

谢谢!

编辑:
《c – 如何在偏航改变时找到风力发电机叶片形成的角度?》

[由Spektre编辑]

《c – 如何在偏航改变时找到风力发电机叶片形成的角度?》

最佳答案 假设叶片的尖端加上中心(或叶片的三个“根”)位于共同的平面上.

>在这些点与涡轮机参考姿势中的相应点之间拟合单应性(OpenCv中的cv::findHomography)
>使用估计或假设的相机校准将单应性分解为旋转和平移(cv::decomposeHomographyMat).
>将旋转转换为欧拉角.

点赞