如何使用OpenCV提取和定位图像的特定区域?

joe*_*hum -2 opencv roi

我是 OpenCV 的新手。我想从事一个跟踪齿轮转速的小项目(通过使用网络摄像头)。但是,直到现在,我都不知道如何处理这个问题。发布的图片显示了一台包含两个“大”齿轮的机器。我只对左侧的齿轮感兴趣(我突出显示的红线)。

关联

我的计划是:

  1. 提取感兴趣的齿轮区域。

  2. 屏蔽所有不相关的区域。因此,蒙版图像仅显示左侧齿轮 (ROI)。

  3. .....

    问题是,如何定位/提取/屏蔽 ROI 和屏蔽?。
    我通过一些关于 的例子cvMatchTemplate(),但它不支持旋转和缩放。由于使用网络摄像头,捕获的图像可能会缩放或旋转。cvfindcontour()将提取图像中的所有轮廓而不是 ROI。

Jav*_*ock 5

如果您以前知道齿轮,您可以使用它的图片通过 SIFT、SURF、FAST 或任何角检测算法提取关键点。然后做如下操作:

1- 在每一帧上应用 FAST 来检测关键点。

2- 从这些关键点中提取 SIFT 描述符

3- 将场景中检测到的点与您之前从图像中提取的点进行匹配。您可以为此使用 FLANN 匹配器。

4- 这些匹配将在场景中定义一个包含您正在寻找的装备的区域。

这并非微不足道,因此您需要在 OpenCV 文档中查找有关使用所有这些功能的信息。