কম্পিউটার

OpenCV Java ব্যবহার করে একটি ছবিতে সম্ভাব্য বস্তুর চারপাশে উপবৃত্তগুলি কীভাবে ফিট করবেন?


আপনি fitEllipse() ব্যবহার করে একটি আকৃতির উপর একটি উপবৃত্তাকার ফিট করতে পারেন এর পদ্ধতি org.opencv.imgproc.Imgproc ক্লাস এই পদ্ধতিটি MatOfPoint2f শ্রেণীর একটি অবজেক্ট গ্রহণ করে, প্রদত্ত পয়েন্টের সেটের সাথে মানানসই উপবৃত্তাকার গণনা করে এবং একটি ঘূর্ণিত রেক্ট অবজেক্ট প্রদান করে।

এটি ব্যবহার করে আপনি একটি চিত্রের সম্ভাব্য বস্তুর চারপাশে উপবৃত্ত আঁকতে পারেন। এটি করতে,

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

  • cvtColor() ব্যবহার করে এটিকে একটি গ্রেস্কেল ছবিতে রূপান্তর করুন Imgproc ক্লাসের পদ্ধতি।

  • থ্রেশহোল্ড() ব্যবহার করে ধূসর চিত্রটিকে বাইনারিতে রূপান্তর করুন Imgproc ক্লাসের পদ্ধতি।

  • findContours() ব্যবহার করে ছবিতে কনট্যুরগুলি খুঁজুন৷ Imgproc ক্লাসের পদ্ধতি।

  • এখন, RotatedRec পান প্রতিটি কনট্যুর মানকে MatOfPoint2f হিসাবে fitEllipse() এ বাইপাস করে সম্ভাব্য কনট্যুরের জন্য অবজেক্ট পদ্ধতি

  • সবশেষে, Elipse() ব্যবহার করে সম্ভাব্য আকারের চারপাশে উপবৃত্ত আঁকুন পদ্ধতি।

নোট ৷ − উপবৃত্তাকার ফিট করার জন্য বস্তুটিতে কমপক্ষে পাঁচটি বিন্দু থাকা উচিত।

উদাহরণ

import java.util.ArrayList;
import java.util.List;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.MatOfPoint2f;
import org.opencv.core.RotatedRect;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class FitEllipseExample {
   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);
      //Converting the source image to binary
      Mat gray = new Mat(src.rows(), src.cols(), src.type());
      Imgproc.cvtColor(src, gray, Imgproc.COLOR_BGR2GRAY);
      Mat binary = new Mat(src.rows(), src.cols(), src.type(), new Scalar(0));
      Imgproc.threshold(gray, binary, 100, 255, Imgproc.THRESH_BINARY_INV);
      //Finding Contours
      List<MatOfPoint> contours = new ArrayList<>();
      Mat hierarchey = new Mat();
      Imgproc.findContours(binary, contours, hierarchey, Imgproc.RETR_TREE,
      Imgproc.CHAIN_APPROX_SIMPLE);
      //Empty rectangle
      RotatedRect[] rec = new RotatedRect[contours.size()];
      for (int i = 0; i < contours.size(); i++) {
         rec[i] = new RotatedRect();
         if (contours.get(i).rows() > 5) {
            rec[i] = Imgproc.fitEllipse(new MatOfPoint2f(contours.get(i).toArray()));
         }
         Scalar color_elli = new Scalar(190, 0, 0);
         Imgproc.ellipse(src, rec[i], color_elli, 5);
      }
      HighGui.imshow("Contours operation", src);
      HighGui.waitKey();
   }
}

ইনপুট চিত্র

OpenCV Java ব্যবহার করে একটি ছবিতে সম্ভাব্য বস্তুর চারপাশে উপবৃত্তগুলি কীভাবে ফিট করবেন?


আউটপুট

OpenCV Java ব্যবহার করে একটি ছবিতে সম্ভাব্য বস্তুর চারপাশে উপবৃত্তগুলি কীভাবে ফিট করবেন?



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

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে কীভাবে একটি রঙিন চিত্রকে নীল/সবুজ/লাল ছবিতে রূপান্তর করবেন?

  3. কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি রঙিন চিত্রকে গ্রেস্কেলে রূপান্তর করবেন?

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