Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะตรวจจับจุดสำคัญของรูปภาพโดยใช้ไลบรารี OpenCV Java ได้อย่างไร


The detect() วิธีการของ org.opencv.features2d.Feature2D (นามธรรม) ชั้นตรวจจับจุดสำคัญของภาพที่กำหนด ในวิธีนี้ คุณต้องผ่าน Mat วัตถุที่แสดงภาพต้นฉบับและ MatOfKeyPoint . ที่ว่างเปล่า วัตถุที่จะถืออ่านประเด็นสำคัญ

คุณสามารถวาดจุดสำคัญบนรูปภาพโดยใช้ drawKeypoints() วิธีการของ org.opencv.features2d.Features2d ชั้นเรียน

หมายเหตุ

  • เนื่องจาก Feature2D เป็นคลาสนามธรรม คุณต้องสร้างอินสแตนซ์หนึ่งในคลาสย่อยเพื่อเรียกใช้เมธอด detect() ที่นี่เราใช้คลาส FastFeatureDetector

  • ฟีเจอร์2D และ Features2d เป็นสองคลาสที่แตกต่างกันของแพ็คเกจ features2d อย่าสับสน...

ตัวอย่าง

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.core.Scalar;
import org.opencv.features2d.FastFeatureDetector;
import org.opencv.features2d.Features2d;
import org.opencv.highgui.HighGui;z
import org.opencv.imgcodecs.Imgcodecs;
public class DetectingKeyPoints{
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the contents of the image
      String file ="D:\\Images\\javafx_graphical.jpg";
      Mat src = Imgcodecs.imread(file);
      //Reading the key points of the image
      Mat dst = new Mat();
      MatOfKeyPoint matOfKeyPoints = new MatOfKeyPoint();
      FastFeatureDetector featureDetector = FastFeatureDetector.create();
      featureDetector.detect(src, matOfKeyPoints);
      //Drawing the detected key points
      Features2d.drawKeypoints(src, matOfKeyPoints, dst, new Scalar(0, 0, 255));
      HighGui.imshow("Feature Detection", dst);
      HighGui.waitKey();
   }
}

ใส่รูปภาพ

จะตรวจจับจุดสำคัญของรูปภาพโดยใช้ไลบรารี OpenCV Java ได้อย่างไร

ผลลัพธ์

จะตรวจจับจุดสำคัญของรูปภาพโดยใช้ไลบรารี OpenCV Java ได้อย่างไร