কম্পিউটার টিউটোরিয়াল

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে দুটি চিত্রের মূল পয়েন্টগুলি কীভাবে মেলে?


দি ডিটেক্ট()৷ org.opencv.features2d.Feature2D এর পদ্ধতি (বিমূর্ত) ক্লাস প্রদত্ত চিত্রের মূল পয়েন্টগুলি সনাক্ত করে। এই পদ্ধতিতে, আপনাকে একটি ম্যাট পাস করতে হবে বস্তুটি উৎস চিত্রের প্রতিনিধিত্ব করে এবং একটি খালি MatOfKeyPoint পঠিত মূল পয়েন্ট ধরে রাখতে অবজেক্ট।

ড্র ম্যাচ() org.opencv.features2d.Feature2D এর পদ্ধতি ক্লাস দুটি প্রদত্ত চিত্রের মূল পয়েন্টগুলির মধ্যে মিল খুঁজে বের করে এবং সেগুলি আঁকে। এই পদ্ধতিটি নিম্নলিখিত পরামিতিগুলি গ্রহণ করে −

  • src1 - মাদুরের একটি বস্তু ক্লাস প্রথম উৎস চিত্রের প্রতিনিধিত্ব করে।

  • কী পয়েন্ট1 − MatOfKeyPoint-এর একটি বস্তু ক্লাস প্রথম উৎস চিত্রের মূল পয়েন্টগুলিকে প্রতিনিধিত্ব করে।

  • src2 − ম্যাট ক্লাসের একটি অবজেক্ট যা দ্বিতীয় সোর্স ইমেজকে প্রতিনিধিত্ব করে।

  • কী পয়েন্ট2 − MatOfKeyPoint-এর একটি বস্তু শ্রেণী দ্বিতীয় উৎস চিত্রের মূল পয়েন্টগুলিকে প্রতিনিধিত্ব করে।

  • 1 থেকে 2 মিল − প্রথম চিত্র থেকে দ্বিতীয়টির সাথে মিলে যায়, যার অর্থ হল কীপয়েন্ট 1[i]-এর কীপয়েন্ট 2[ম্যাচ[i]]-এ একটি সংশ্লিষ্ট বিন্দু রয়েছে।

  • dst − ম্যাট ক্লাসের একটি বস্তু যা গন্তব্য চিত্রকে প্রতিনিধিত্ব করে।

অতএব, দুটি চিত্রের মূল পয়েন্টগুলিকে মেলাতে -

  • imread() ব্যবহার করে দুটি উৎসের ছবি পড়ুন পদ্ধতি।

  • ডিটেক্ট() ব্যবহার করে দুটি ছবির মূল পয়েন্ট পান পদ্ধতি।

  • drawMatches() ব্যবহার করে ম্যাচগুলি খুঁজুন এবং আঁকুন পদ্ধতি।

উদাহরণ

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfDMatch;
import org.opencv.core.MatOfKeyPoint;
import org.opencv.features2d.FastFeatureDetector;
import org.opencv.features2d.Features2d;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
public class MatchingKeypoints {
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the source images
      String file1 ="D:\\Images\\feature1.jpg";
      Mat src1 = Imgcodecs.imread(file1);
      String file2 ="D:\\Images\\feature2.jpg";
      Mat src2 = Imgcodecs.imread(file2);
      //Creating an empty matrix to store the destination image
      Mat dst = new Mat();
      FastFeatureDetector detector = FastFeatureDetector.create();
      //Detecting the key points in both images
      MatOfKeyPoint keyPoints1 = new MatOfKeyPoint();
      detector.detect(src1, keyPoints1);
      MatOfKeyPoint keyPoints2 = new MatOfKeyPoint();
      detector.detect(src2, keyPoints2);
      MatOfDMatch matof1to2 = new MatOfDMatch();
      Features2d.drawMatches(src1, keyPoints1, src2, keyPoints2, matof1to2, dst);
      HighGui.imshow("Feature Matching", dst);
      HighGui.waitKey();
   }
}

ইনপুট ছবি

Image1 −

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে দুটি চিত্রের মূল পয়েন্টগুলি কীভাবে মেলে?

Image2 -

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে দুটি চিত্রের মূল পয়েন্টগুলি কীভাবে মেলে?

আউটপুট

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে দুটি চিত্রের মূল পয়েন্টগুলি কীভাবে মেলে?


  1. কিভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে দুটি ছবি তুলনা করবেন?

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে কীভাবে একটি মিরর ইমেজ তৈরি করবেন?

  3. জাভা ওপেনসিভি ব্যবহার করে দুটি ছবিতে বিটওয়াইজ বা অপারেশন কীভাবে করবেন?

  4. কিভাবে জাভা OpenCV লাইব্রেরি ব্যবহার করে একটি ছবি লিখতে হয়?