我使用OpenCV中的输入图像转换为灰度图像的SURF功能。SURF和OpenSURF彩色图像
cvtColor(object, object, CV_RGB2GRAY);
当我浏览OpenSURF的文档时,我意识到它不是灰度。
我的困惑是,我们可以将SURF应用于任何图像格式(YUV,HSV,RGB),或者我们必须改变和修改程序来实现这一点?
我使用OpenCV中的输入图像转换为灰度图像的SURF功能。SURF和OpenSURF彩色图像
cvtColor(object, object, CV_RGB2GRAY);
当我浏览OpenSURF的文档时,我意识到它不是灰度。
我的困惑是,我们可以将SURF应用于任何图像格式(YUV,HSV,RGB),或者我们必须改变和修改程序来实现这一点?
大多数特征检测器都在灰度级上工作,因为它们分析图像补丁中边缘的图案。您可以在任何单色通道上使用您提及的颜色格式运行SURF,即可以在YUV图像上运行Y,U或V图像,也可以在HSV图像上运行H,S或V.不确定OpenSURF如何处理这个问题,但他们必须在内部使用灰度图像。
此外:OpenSURF在计算完成后立即执行灰度转换积分图像(检测器需要)。请参阅'IplImage * Integral(IplImage * source)'执行'IplImage * img = getGray(source);'。 – deltheil