0

我在 OpenCV 中使用 SURF 功能,其中输入图像被转换为​​灰色图像。

 cvtColor(object, object, CV_RGB2GRAY);

当我浏览 OpenSURF 的文档时,我意识到它不是灰度的。

我的困惑是我们可以将 SURF 应用于任何图像格式(YUV、HSV、RGB)还是我们必须更改和修改程序才能实现这一点?

4

2 回答 2

1

大多数特征检测器在灰度上工作,因为它们分析图像块中的边缘模式。您可以在您提到的颜色格式中的任何单一颜色通道上运行 SURF,即您可以在 YUV 图像的 Y、U 或 V 上运行它,或者在 HSV 图像的 H、S 或 V 上运行它。不确定 OpenSURF 如何处理这个问题,但他们必须在内部使用灰度图像。

于 2013-05-21T11:08:01.250 回答
0

就像 OpenCV 一样,如果你给 OpenSURF 一个不是单通道的图像,它会调用cvtColor(src, dst, CV_BGR2GRAY). 如果你在 YUV、HSV、Lab 等中传递一个 3 通道图像,事情会变得非常糟糕,因为图像将应用不适当的颜色转换..

于 2013-05-21T13:07:51.390 回答