Clear Filters
Clear Filters

How to store SURF features of multiple images

1 view (last 30 days)
KDR
KDR on 12 Jan 2017
Commented: lebed toufik on 19 Feb 2022
Hello all, I'm using SURF descriptor for feature extraction from folder of images. The result i.e. surf features are of different dimension for different image i.e. N*64, N varies with each image. These features are to be classified using knn classifier,one image with all of its features as one class. But KNN classifier takes each row wise features as one class. So how to classify this varying row size features or how to store this in a format that is passed as input to KNN classifier. Below is the code where "features1{i}" contains all the surf features.
srcFiles = dir('C:\Users\nmamit\Documents\MATLAB\photos\*.jpg'); % the folder in which ur images exists
for i = 1 : length(srcFiles)
filename = strcat('C:\Users\nmamit\Documents\MATLAB\photos\',srcFiles(i).name);
I1 = rgb2gray(imread(filename));
points1 = detectSURFFeatures(I1);
feature = zeros(1, length(srcFiles))
[features1{i}, valid_points1{i}] = extractFeatures(I1, points1);
figure; imshow(I1);hold on;
plot(valid_points1{i}.selectStrongest(10),'showOrientation',true);
end
  1 Comment
KS
KS on 14 Aug 2017
Hi, I am having the same problem. Can you please tell me if you came up with a solution?
Thanks.

Sign in to comment.

Answers (1)

KSSV
KSSV on 12 Jan 2017
Store them into cells.
srcFiles = dir('C:\Users\nmamit\Documents\MATLAB\photos\*.jpg'); % the folder in which ur images exists
Features = cell(length(srcFiles),1) ;
Valid_points = cell(length(srcFiles),1) ;
for i = 1 : length(srcFiles)
filename = strcat('C:\Users\nmamit\Documents\MATLAB\photos\',srcFiles(i).name);
I1 = rgb2gray(imread(filename));
points1 = detectSURFFeatures(I1);
[features1, valid_points1] = extractFeatures(I1, points1);
Features{i} = features1 ;
Valid_points{i} = valid_points1 ;
figure; imshow(I1);hold on;
plot(valid_points1{i}.selectStrongest(10),'showOrientation',true);
end
Features
Valid_points
  3 Comments
KSSV
KSSV on 12 Jan 2017
YOu can access the feature you want using Features{i}
lebed toufik
lebed toufik on 19 Feb 2022
@KSSV I used the features {i} but still the same problem.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!