org.opencv.features2d.Feature2D (অ্যাবস্ট্রাক্ট) ক্লাসের detect() মেথড দেওয়া ইমেজের কি পয়েন্ট ডিটেক্ট করে। এই মেথডে আপনাকে একটি Mat অবজেক্ট (সোর্স ইমেজকে প্রতিনিধित्व করে) এবং একটি খালি MatOfKeyPoint অবজেক্ট (কি পয়েন্ট ধারণ করতে) পাস করতে হবে।
org.opencv.features2d.Features2d ক্লাসের drawKeypoints() মেথড ব্যবহার করে কি পয়েন্টগুলো ইমেজে আঁকা যায়।
নোট
- যেহেতু Feature2D একটি অ্যাবস্ট্রাক্ট ক্লাস, তাই detect() মেথড আহ্বান করতে এর সাবক্লাসের একটিকে ইনস্ট্যানশিয়েট করতে হবে। এখানে আমরা FastFeatureDetector ক্লাস ব্যবহার করেছি।
- Features2D এবং 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;
import org.opencv.imgcodecs.Imgcodecs;
public class DetectingKeyPoints{
public static void main(String args[]) throws Exception {
// OpenCV কোর লাইব্রেরি লোড করা
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// ইমেজের কন্টেন্ট পড়া
String file = "D:\\Images\\javafx_graphical.jpg";
Mat src = Imgcodecs.imread(file);
// ইমেজের কি পয়েন্ট পড়া
Mat dst = new Mat();
MatOfKeyPoint matOfKeyPoints = new MatOfKeyPoint();
FastFeatureDetector featureDetector = FastFeatureDetector.create();
featureDetector.detect(src, matOfKeyPoints);
// ডিটেক্টেড কি পয়েন্ট আঁকা
Features2d.drawKeypoints(src, matOfKeyPoints, dst, new Scalar(0, 0, 255));
HighGui.imshow("Feature Detection", dst);
HighGui.waitKey();
}
}
ইনপুট ইমেজ

আউটপুট
