一个理想的风力发电场将使所有涡轮机以相同的叶片角度*以类似的方式旋转。不同涡轮机的叶片以不同的速度旋转。因此,每个风力涡轮机的叶片角度都不同。考虑 4 台风力涡轮机的情况,每台风力涡轮机相距 100 米并形成 ө1、ө2、ө3 和 ө4 的叶片角,我们可以使用 OpenCV 通过使用合适的计算机视觉算法并考虑到每个涡轮机的叶片角考虑用于监控的网络摄像头的距离、位置和其他此类因素。这个想法是为了获得形成的叶片角度的准确值。
*叶片角度(此处)- 第一个叶片与假想水平轴之间形成的角度,沿逆时针方向测量。
我希望这能提供清晰度。
在 OpenCV 中,我计划了以下方法-
获取图像/帧-使用canny边缘检测-使用霍夫线变换寻找线-识别刀刃线-找到刀刃角度-转到下一帧。
我的问题是-我不知道如何在找到霍夫线后只识别 Blade 线。我知道概率 Hough 线将返回“线”,即检测到的所有线的终点。但是我怎么知道哪些线属于 Blade 呢? 我面临的另一个问题是,我应该如何精确地制作一条穿过轮毂的假想水平线来测量叶片角度。
另一种方法- 基本上我想要的是同步旋转并为此寻找叶片角度。另一种方法是 - 使用背景减法,找到并绘制所有 4 个涡轮机的轮廓。考虑一个涡轮机作为引用。将找到的所有其他涡轮机的轮廓与引用涡轮机进行比较,找出每个叶片的角度差异。但是我如何比较并找到它们之间的不同角度呢?任何代码片段都会有所帮助。
您对此有何看法?我是使用 openCV 的完全初学者,非常感谢任何帮助。非常感谢。
编辑:对所关注的角度 ө1 的粗略引用是此处的叶片角度:
角度的另一个引用,考虑到线不穿过叶片:
最佳答案
这是我想到的流程:
- 因为你的相机是静态的,你可以定义区域
仅在该区域裁剪(子矩阵)并检测边缘以应用
Houghtransform
。 - 因为你知道 Blade 的确切长度(由于静电
相机),您可以将
Houghlines
限制为 Blade 。 - 获取
Houghlines
后,需要获取平均线 在两条(几乎平行的)线之间(我认为 Blade 边缘不是 平行,所以它们在底部较厚,在底部变薄 tip) - 获得叶片的准确中心线。 - 之后你可以通过 (endPoint - 起点)。
- 现在您只需计算点积的
arcos
vector 和水平线 vector (1,0) - 这是你的角度 在 Blade 和水平线之间。
关于c++ - 如何找到风力涡轮机叶片相对于水平假想轴形成的角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42017386/