我在OpenCV中使用SURF功能,输入图像转换为灰度图像。
cvtColor(object, object, CV_RGB2GRAY);
当我浏览OpenSURF的文档时,我意识到它不是灰度级的。
我的困惑是我们可以将SURF应用于任何图像格式(YUV,HSV,RGB),还是我们必须更改和修改程序才能实现这一目标?
答案 0 :(得分:1)
大多数特征检测器都使用灰度,因为它们分析图像块中边缘的图案。您可以从您提到的颜色格式在任何单一颜色通道上运行SURF,即您可以在YUV图像上运行Y,U或V,或者从HSV图像运行H,S或V.不确定OpenSURF如何处理这个问题,但他们必须在内部使用灰度图像。
答案 1 :(得分:0)
与OpenCV一样,如果您向OpenSURF提供的图像不是单通道,则会调用cvtColor(src, dst, CV_BGR2GRAY)
。如果你在YUV,HSV,Lab等中传递一个3通道图像,事情将会出现严重错误,因为图像将应用不适当的颜色转换。