BOWImgDescriptorExtractorTest.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package org.opencv.test.features2d;
  2. import org.opencv.core.Core;
  3. import org.opencv.core.CvType;
  4. import org.opencv.core.Mat;
  5. import org.opencv.core.MatOfKeyPoint;
  6. import org.opencv.core.Point;
  7. import org.opencv.core.Scalar;
  8. import org.opencv.core.KeyPoint;
  9. import org.opencv.features2d.ORB;
  10. import org.opencv.features2d.DescriptorMatcher;
  11. import org.opencv.features2d.BOWImgDescriptorExtractor;
  12. import org.opencv.test.OpenCVTestCase;
  13. import org.opencv.test.OpenCVTestRunner;
  14. import org.opencv.imgproc.Imgproc;
  15. public class BOWImgDescriptorExtractorTest extends OpenCVTestCase {
  16. ORB extractor;
  17. DescriptorMatcher matcher;
  18. int matSize;
  19. public static void assertDescriptorsClose(Mat expected, Mat actual, int allowedDistance) {
  20. double distance = Core.norm(expected, actual, Core.NORM_HAMMING);
  21. assertTrue("expected:<" + allowedDistance + "> but was:<" + distance + ">", distance <= allowedDistance);
  22. }
  23. private Mat getTestImg() {
  24. Mat cross = new Mat(matSize, matSize, CvType.CV_8U, new Scalar(255));
  25. Imgproc.line(cross, new Point(20, matSize / 2), new Point(matSize - 21, matSize / 2), new Scalar(100), 2);
  26. Imgproc.line(cross, new Point(matSize / 2, 20), new Point(matSize / 2, matSize - 21), new Scalar(100), 2);
  27. return cross;
  28. }
  29. @Override
  30. protected void setUp() throws Exception {
  31. super.setUp();
  32. extractor = ORB.create();
  33. matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE);
  34. matSize = 100;
  35. }
  36. public void testCreate() {
  37. BOWImgDescriptorExtractor bow = new BOWImgDescriptorExtractor(extractor, matcher);
  38. }
  39. }