2017-02-27 147 views
0

我在matlab计算机视觉系统工具箱中实现的函数bagoffeatures有问题。bagoffeatures提取不同类型的特征

我正在做一个不同类型的图像分类研究,首先我试图用diffenrets自定义提取器使用bagoffeatures,我想分成2个分支我的工作,首先提取SURFpoints和提取3不同类型的描述,例如SURF活跃,怪胎,当我在我的自定义提取使用下一行:

features = extractFeatures(grayImage,multiscaleGridPoints,'Upright',true, 'method', 'SURF'); 

它八方通需要获得SURF方法的工作,但我需要能够得到型动物类型的描述符。

我可以使用计算机视觉系统工具箱中的功能包功能来做到这一点吗?或者它只支持超时提取?

+0

您是否阅读过文档?那里有什么不清楚的东西吗? –

+0

是的,阅读文档,我测试了功能并寻找解决方案,我只想知道是否有人知道您是否可以提取其他类型的描述符。 –

+0

你没看过。文档的第二行:* bag = bagOfFeatures(imds,'CustomExtractor',extractorFcn)返回一个使用自定义特征提取函数从输出包中提取特征以学习其视觉词汇的功能包。 extractorFcn是一个自定义特征提取函数的函数句柄。* –

回答

0

不幸的是,您不能使用BRISK或FREAK和MATLAB的特征包实现,因为特征包算法使用K-means聚类来创建“视觉词汇”。问题是BRISK和FREAK描述符是二进制位串,并且不能用K-means对它们进行聚类,而K-means只适用于实值向量。

您当然可以在MATLAB框架中使用不同种类的兴趣点检测器。然而,你仅限于描述符是实值向量。所以SURF和SIFT将会工作,但是BRISK和FREAK不会。如果您绝对必须使用BRISK和FREAK,那么您将实现自己的功能包。有几种方法可以对二进制描述符进行聚类,但我不知道它们在特征提取的背景下工作得有多好。

+0

我是否应该用自己的话来解决我的问题?我真的需要结合不同类型的探测器和提取器,以不同的方法对我的图像进行分类 –

+0

我编辑了我的答案。 – Dima

+0

谢谢你的答案,以及我不需要专门使用这2个描述符,但因为我想使用计算机视觉工具箱,我会尝试做2种类型的测试:获得快速keyPoints并使用SURF,BRISK和FREAK描述符,第二个获得SURF关键点并使用SURF BRISK和FREAK描述符。我会尽力实施我自己的包包,谢谢你的回答,非常感谢 –