如何找到风力涡轮机叶片相对于水平假想轴形成的角度?

How to find angle formed by the blades of a wind turbine with respect to a horizontal imaginary axis?

一个理想的风力发电场将使所有涡轮机以相同的 Blade 角度* 以类似的方式旋转。不同涡轮机的 blades 以可变速度旋转。因此,每个风力涡轮机的 Blade 角度都不同。考虑 4 台风力涡轮机的情况,每台风力涡轮机相距 100 米并形成一个 Blade 的 ө1, ө2, ө3 和 ө4 的角度,我们可以使用 OpenCV 来监控每​​个涡轮机的 Blade 角度,方法是:合适的计算机视觉算法,并考虑到用于监控的网络摄像头的距离、位置和其他此类因素。这个想法是为了获得所形成的 Blade 个角度的准确值。

*Blade角度(此处)-第一个blade与假想水平轴之间形成的角度,以[=43=测量] 方向.

我希望这能提供清晰的信息。

在 OpenCV 中,我计划采用以下方法 -

获取图像/帧-使用canny边缘检测-使用霍夫线变换找到lines-recognisebladelines-findblade角度-转到下一帧。

我的问题是-我不知道如何在找到霍夫线后只识别blade线。我知道概率霍夫线将 return 'lines',即检测到的所有线的终点。但是我怎么知道哪些行属于 blade 呢? 我面临的另一个问题是我应该如何准确地通过轮毂制作一条假想的水平线来测量 blade 角度。

另一种方法- 基本上我想要的是同步旋转并为此找到blade 角度。另一种方法是 - 使用背景减法,找到并绘制所有 4 个涡轮机的轮廓。考虑一个涡轮机作为参考。将找到的所有其他涡轮机的轮廓与参考涡轮机进行比较,找出每个涡轮机的角度差异 blade。但是我如何比较并找到它们之间的不同角度呢?任何代码片段都会有所帮助。

你对此有什么看法吗?我是使用 openCV 的完全初学者,非常感谢任何帮助。非常感谢。

编辑:对所关注的角度 ө1 的粗略参考是此处的 Blade 角度:

另一个参考角度,考虑到直线没有经过blades:

这是我想到的流程:

  1. 由于你的相机是静态的,你可以定义区域来 仅在该区域裁剪(子矩阵)并检测边缘以应用 Houghtransform
  2. 由于您知道 blade 的确切长度(由于静态 相机),您可以将 Houghlines 限制为 blades.
  3. 获取Houghlines后,需要获取平均线 在两条(几乎平行的)线之间(我认为 blade 边缘不是 平行,所以它们在底部较厚,在底部变薄 tip) - 获取 blade.
  4. 的精确中心线
  5. 之后可以得到blade的向量,通过(endPoint - 起点)。
  6. 现在您只需计算 arcos 的点积 矢量和水平线矢量 (1,0) - 这是你的角度 在 blade 和水平线之间。