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

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


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

অ্যভারেজিং ওপেনসিভি প্রদত্ত ব্লারিং টেকনিকগুলোর একটি, এটি কার্নেল এলিয়া সকল পিক্সেলের গড় দিয়ে সেন্ট্রাল এলিমেন্টকে রিপ্লেস করে।

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

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

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

  • অ্যাঙ্কর পয়েন্ট উপস্থাপনকারী একটি ইন্টিজার ভেরিয়েবল।

  • আউটপুটে ব্যবহৃত বর্ডার টাইপ উপস্থাপনকারী একটি ইন্টিজার ভেরিয়েবল।

উদাহরণ

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.core.Point;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class NormalizedBoxExample extends Application {
    public void start(Stage stage) throws IOException {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ইমেজ ডেটা পড়া
        String file = "D:\\Images\\lamma2.jpg";
        Mat src = Imgcodecs.imread(file);
        
        // ডেস্টিনেশন ম্যাট্রিক্স তৈরি
        Mat dst = new Mat(src.rows(), src.cols(), src.type());
        
        // Size এবং Point অবজেক্ট তৈরি
        Size size = new Size(45, 45);
        Point point = new Point(20, 30);
        
        // ইমেজে ব্লার ইফেক্ট প্রয়োগ
        Imgproc.blur(src, dst, size, point, 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. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্র লিখা/সংরক্ষণ