How to find those 64 SURF descriptors to feed them to a Neural Network in matlab

时间:2015-05-24 21:57:07

标签: matlab neural-network

Im trying to find out SURF descriptors from a foreground mask, well i got them but im a novice at this, what i want are those 64 or 128 SURF descriptors which I will give as input to a Neural Network, what i cant find is where are those 64 descriptors??

the code is as follows:

I = imread('Sample.jpg');

points = detectHarrisFeatures(I);  % for corners
Temp = SURFPoints(points.Location); % converts coners to SURF points

[features, validPtsObj] = extractFeatures(I, Temp,'SURFSize',64);

when i chceck in command prompt i get lengths as

length(points) = 187
length(features) = 187
length(validPtsObj) = 187

where are those 64 or 128 descriptors ???

1 个答案:

答案 0 :(得分:0)

我不确定但是我发现的事情是你正在通过哈里斯角探测器提取一些角落 - 它找到了187个角落。然后在这些点上计算冲浪特征(在此行:Temp = SURFPoints(points.Location))并将它们转换为您期望的向量(在此行:[features, validPtsObj] = extractFeatures(I, Temp,'SURFSize',64);) 我的猜测是,您要查找的值存储在您调用的结构中" features"。因此,每个角落的冲浪特征(大小为64的向量)将存储在features{1} .... features{187}中。 (您可以通过length(features{1})进行检查。)

只是一点,通常神经网络,你想要提供原始像素值,让网络找到原始数据之间的关系,而不是手工制作的功能。如果您想使用SURF功能,我建议您尝试将其输入SVM。