Skip to content

Instantly share code, notes, and snippets.

@joshuajnoble
Created June 13, 2016 10:29
Show Gist options
  • Save joshuajnoble/05b2b3340fc45a96882a0d699e7f9f7c to your computer and use it in GitHub Desktop.
Save joshuajnoble/05b2b3340fc45a96882a0d699e7f9f7c to your computer and use it in GitHub Desktop.
import gab.opencv.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferInt;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
import org.opencv.core.MatOfInt;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.MatOfRect;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.features2d.DMatch;
import org.opencv.features2d.DescriptorExtractor;
import org.opencv.features2d.DescriptorMatcher;
import org.opencv.features2d.FeatureDetector;
import org.opencv.features2d.Features2d;
import org.opencv.features2d.GenericDescriptorMatcher;
import org.opencv.features2d.KeyPoint;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;
MatOfKeyPoint keyPoint01;
PImage pimg;
void settings() {
size(1600, 1000);
}
void setup()
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
pimg = loadImage(sketchPath() + "/test_image.png");
Mat image01 = Highgui.imread( sketchPath() + "/test_image.png");
surface.setResizable(true);
Mat grayImage01 = new Mat(image01.rows(), image01.cols(), image01.type());
Imgproc.cvtColor(image01, grayImage01, Imgproc.COLOR_BGRA2GRAY);
Core.normalize(grayImage01, grayImage01, 0, 255, Core.NORM_MINMAX);
FeatureDetector siftDetector = FeatureDetector.create(FeatureDetector.SIFT);
DescriptorExtractor siftExtractor = DescriptorExtractor.create(DescriptorExtractor.SIFT);
keyPoint01 = new MatOfKeyPoint();
siftDetector.detect(grayImage01, keyPoint01);
Mat descripters01 = new Mat(image01.rows(), image01.cols(), image01.type());
siftExtractor.compute(grayImage01, keyPoint01, descripters01);
}
void draw()
{
image(pimg, 0, 0);
noFill();
stroke(0, 255, 0);
for (int i = 0; i < keyPoint01.toArray().length; i++ )
{
ellipse( (float) keyPoint01.toArray()[i].pt.x, (float) keyPoint01.toArray()[i].pt.y, 10, 10);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment