我是OpenCV的新手。我想研究一个小项目来跟踪齿轮的转速(通过使用网络摄像头)。但是,到现在为止,我不知道如何解决这个问题。 发布的图像显示了一台包含两个“大”齿轮的机器。我只对左侧的装备感兴趣(我突出显示的是红线)。
我的计划是:
提取感兴趣的齿轮区域。
掩盖所有不相关的区域。因此,蒙版图像仅显示左侧齿轮(ROI)。
.....
问题是,我如何定位/提取/掩盖ROI和掩码?。我通过一些关于cvMatchTemplate()
的例子,但它不支持旋转和缩放。由于使用网络摄像头,捕获的图像可能会缩放或旋转。 cvfindcontour()
将提取图像中的所有轮廓,而不是ROI。
答案 0 :(得分:4)
如果您以前知道装备,可以使用它的图片通过SIFT,SURF,FAST或任何角点检测算法提取关键点。然后执行以下操作:
1-在每一帧上应用FAST以检测关键点。
2-从这些关键点中提取SIFT描述符
3-使用先前从图像中提取的点匹配场景中的检测点。您可以使用FLANN匹配器。
4-这些匹配将在场景中定义一个区域,其中包含您要查找的装备。
这并非易事,因此您需要在OpenCV文档中查找有关使用所有这些功能的信息。