package net.semanticmetadata.lire.imageanalysis.features.local.surf; import com.stromberglabs.jopensurf.SURFInterestPoint; import com.stromberglabs.jopensurf.Surf; import net.semanticmetadata.lire.imageanalysis.features.LocalFeature; import net.semanticmetadata.lire.imageanalysis.features.LocalFeatureExtractor; import java.awt.image.BufferedImage; import java.util.LinkedList; import java.util.List; /** * Created by Nektarios on 8/6/2015. * * @author Nektarios */ public class SurfExtractor implements LocalFeatureExtractor { LinkedList<SurfFeature> features = null; @Override public List<? extends LocalFeature> getFeatures() { return features; } @Override public Class<? extends LocalFeature> getClassOfFeatures() { return SurfFeature.class; } @Override public void extract(BufferedImage image) { Surf s = new Surf(image); List<SURFInterestPoint> interestPoints = s.getFreeOrientedInterestPoints(); features = new LinkedList<SurfFeature>(); for (SURFInterestPoint interestPoint : interestPoints) { features.add(new SurfFeature(interestPoint)); } } }