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

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


আপনি একটি লো-পাস ফিল্টার ব্যবহার করে চিত্র ফিল্টার করে ব্লার করতে পারেন, এটি চিত্র থেকে হাই ফ্রিকোয়েন্সি কন্টেন্ট (নויז, এজ) সরিয়ে দেয়। বাইল্যাটেরাল ফিল্টারিং ওপেনসিভি প্রদত্ত ব্লারিং টেকনিকগুলোর একটি, এটি:

  • নויז দক্ষতার সাথে সরায়

  • এজগুলো শার্প রাখে

  • তুলনামূলকভাবে ধীর

আপনি একটি ইমেজে বাইল্যাটেরাল ফিল্টার প্রয়োগ করতে পারেন bilateralFilter() মেথড ব্যবহার করে, এই মেথড গ্রহণ করে:

  • দুটি Mat অবজেক্ট যা সোর্স এবং ডেস্টিনেশন ইমেজ উপস্থাপন করে।

  • পিক্সেল নেইবরহुडের ডায়ামিটার উপস্থাপনকারী একটি ইন্টিজার।

  • দুটি ইন্টিজার ভেরিয়েবল যা কালার স্পেস এবং কোঅর্ডিনেট স্পেসে ফিল্টার সিগমা উপস্থাপন করে।

  • বর্ডার টাইপ উপস্থাপনকারী একটি ইন্টিজার অবজেক্ট।

উদাহরণ

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 BilateralFilterExample extends Application {
    public void start(Stage stage) throws IOException {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ইমেজ ডেটা পড়া
        String file = "D:\\Images\\window.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // ডেস্টিনেশন ম্যাট্রিক্স তৈরি
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        
        // বাইল্যাটেরাল ফিল্টার প্রয়োগ
        Imgproc.bilateralFilter(src, dst, 25, 75, 75, Core.BORDER_DEFAULT);
        
        // ম্যাট্রিক্সকে জাভाएফএক্স রাইটেবল ইমেজে রূপান্তর
        Image img = HighGui.toBufferedImage(dst);
        WritableImage writableImage = SwingFXUtils.toFXImage((BufferedImage) img, null);
        
        // ইমেজ ভিউ সেট করা
        ImageView imageView = new ImageView(writableImage);
        imageView.setX(10);
        imageView.setY(10);
        imageView.setFitWidth(575);
        imageView.setPreserveRatio(true);
        
        // Scene অবজেক্ট সেট করা
        Group root = new Group(imageView);
        Scene scene = new Scene(root, 595, 400);
        stage.setTitle("বাইল্যাটেরাল ফিল্টার উদাহরণ");
        stage.setScene(scene);
        stage.show();
    }
    
    public static void main(String args[]) {
        launch(args);
    }
}

ইনপুট চিত্র

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

আউটপুট

প্রোগ্রামটি এক্সিকিউট করার পর নিচের আউটপুট জেনারেট হবে:

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


  1. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রে মুখ সনাক্তকরণ

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র ফ্লিপ (Flip) করা

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে মিরর ইমেজ তৈরি

  4. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র লিখা/সংরক্ষণ