কম্পিউটার

জাভা উদাহরণ ব্যবহার করে OpenCV অ্যাডাপ্টিভ থ্রেশহোল্ড ব্যাখ্যা করুন


থ্রেশহোল্ডিং হল একটি চিত্রের বিভাজন করার জন্য একটি সহজ কৌশল৷ এটি প্রায়ই বাইনারি ছবি তৈরি করতে ব্যবহৃত হয়। এতে, একটি প্রদত্ত থ্রেশহোল্ড মানের চেয়ে বড় পিক্সেলগুলি একটি আদর্শ মান দিয়ে প্রতিস্থাপিত হবে৷

অ্যাডাপটিভ থ্রেশহোল্ডিং হল এমন একটি পদ্ধতি যেখানে ছোট অঞ্চলের জন্য থ্রেশহোল্ডের মান গণনা করা হয় এবং তাই, বিভিন্ন অঞ্চলের জন্য আলাদা থ্রেশহোল্ড মান থাকবে৷

অ্যাডাপ্টিভ থ্রেশহোল্ড() পদ্ধতি প্রদত্ত চিত্রে অভিযোজিত থ্রেশহোল্ড অপারেশন সম্পাদন করে। এই পদ্ধতির পরামিতিগুলি নিম্নরূপ -

  • উৎস এবং গন্তব্য চিত্রের প্রতিনিধিত্বকারী দুটি ম্যাট বস্তু।

  • একটি পূর্ণসংখ্যা পরিবর্তনশীল থ্রেশহোল্ড মান প্রতিনিধিত্ব করে।

  • অভিযোজিত পদ্ধতি এবং থ্রেশহোল্ড প্রকারের প্রতিনিধিত্বকারী দুটি পূর্ণসংখ্যা ভেরিয়েবল ব্যবহার করা হবে।

  • থ্রেশহোল্ড মান গণনা করতে ব্যবহৃত পিক্সেল আশেপাশের আকারের প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা পরিবর্তনশীল প্রকার।

  • দ্বৈত প্রকারের একটি পূর্ণসংখ্যা পরিবর্তনশীল যা উভয় পদ্ধতিতে ব্যবহৃত ধ্রুবককে প্রতিনিধিত্ব করে।

উদাহরণ

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class AdaptiveThreshold extends Application {
   public void start(Stage stage) throws IOException {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      String file ="D:\\Images\\win2.jpg";
      Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_GRAYSCALE);
      //Creating an empty matrices to store the destination image.
      Mat dst = new Mat(src.rows(), src.cols(), src.type());
      //Applying simple threshold
      Imgproc.adaptiveThreshold(src, dst, 125,
      Imgproc.ADAPTIVE_THRESH_MEAN_C,
      Imgproc.THRESH_BINARY, 11, 12);
      //Converting matrix to JavaFX writable image
      Image img = HighGui.toBufferedImage(dst);
      WritableImage writableImage= SwingFXUtils.toFXImage((BufferedImage) img, null);
      //Setting the image view
      ImageView imageView = new ImageView(writableImage);
      imageView.setX(10);
      imageView.setY(10);
      imageView.setFitWidth(575);
      imageView.setPreserveRatio(true);
      //Setting the Scene object
      Group root = new Group(imageView);
      Scene scene = new Scene(root, 595, 400);
      stage.setTitle("Adaptive Threshold");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]) {
      launch(args);
   }
}

ইনপুট ছবি

জাভা উদাহরণ ব্যবহার করে OpenCV অ্যাডাপ্টিভ থ্রেশহোল্ড ব্যাখ্যা করুন

আউটপুট

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

জাভা উদাহরণ ব্যবহার করে OpenCV অ্যাডাপ্টিভ থ্রেশহোল্ড ব্যাখ্যা করুন


  1. জাভা ব্যবহার করে ওপেনসিভিতে গাউসিয়ান ব্লার কীভাবে প্রয়োগ করবেন?

  2. কীভাবে জাভা ব্যবহার করে ওপেনসিভিতে ব্লার (গড়) প্রয়োগ করবেন?

  3. OpenCV ব্যবহার করে একটি ছবির উজ্জ্বলতা কমাতে JavaFX উদাহরণ।

  4. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি ছবিতে মুখগুলি কীভাবে সনাক্ত করবেন?