কম্পিউটার

কিভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে ইমেজ কনট্যুর আঁকবেন?


কন্টুরগুলি একটি নির্দিষ্ট আকৃতির সীমানা বরাবর সমস্ত বিন্দুকে যুক্ত করা রেখা ছাড়া আর কিছুই নয়৷ এটি ব্যবহার করে আপনি −

করতে পারেন
  • একটি বস্তুর আকৃতি খুঁজুন।

  • একটি বস্তুর ক্ষেত্রফল গণনা করুন।

  • একটি বস্তু সনাক্ত করুন৷

  • একটি বস্তু চিনুন।

আপনি findContours() ব্যবহার করে একটি চিত্রের বিভিন্ন আকার, বস্তুর কনট্যুর খুঁজে পেতে পারেন পদ্ধতি একই ভাবে আপনি আঁকতে পারেন

আপনি drawContours() ব্যবহার করে একটি ছবির পাওয়া কনট্যুর আঁকতে পারেন পদ্ধতি এই পদ্ধতি নিম্নলিখিত পরামিতি গ্রহণ করে −

  • ফলাফল চিত্র সংরক্ষণ করার জন্য একটি খালি ম্যাট অবজেক্ট।

  • কনট্যুর ধারণকারী একটি তালিকা বস্তু পাওয়া গেছে।

  • একটি পূর্ণসংখ্যার মান যা আঁকতে কনট্যুর নির্দিষ্ট করে (-ve এর সবগুলোকে আঁকার মান)।

  • কনট্যুরের রঙ নির্দিষ্ট করার জন্য একটি স্কেলার বস্তু।

  • কনট্যুরের বেধ নির্দিষ্ট করার জন্য একটি পূর্ণসংখ্যার মান।

উদাহরণ

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.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class DrawingContours {
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      String file ="D:\\Images\\shapes.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);
      //Drawing the Contours
      Scalar color = new Scalar(0, 0, 255);
      Imgproc.drawContours(src, contours, -1, color, 2, Imgproc.LINE_8,
      hierarchey, 2, new Point() ) ;
      HighGui.imshow("Drawing Contours", src);
      HighGui.waitKey();
   }
}

ইনপুট ছবি

কিভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে ইমেজ কনট্যুর আঁকবেন?

আউটপুট

কার্যকর করার সময়, উপরের প্রোগ্রামটি নিম্নলিখিত উইন্ডোটি তৈরি করে -

কিভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে ইমেজ কনট্যুর আঁকবেন?


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

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

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

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