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

ইমেজ প্রসেসিং/ওপেনসিভি ইমেজ ডিলেশন জাভা উদাহরণ


ইরোজান এবং ডিলেশন হল দুটি বেসিক মরফোলজিক্যাল অপারেশন। নাম থেকে বোঝা যায়, মরফোলজিক্যাল অপারেশন হল অপারেশনগুলোর একটি সেট যা চিত্রগুলকে তাদের আকৃতি অনুযায়ী প্রক্রিয়া করে।

ডিলেশন অপারেশনের সময় একটি চিত্রের বাউন্ডরিতে অতিরিক্ত পিক্সেল যোগ হয়, ডিলেশন প্রক্রিয়ার সময় যোগ হওয়া পিক্সেলের মোট সংখ্যা স্ট্রাকচারিং এলিমেন্টের ডাইমেনশনে নির্ভর করে।

আপনি Imgproc ক্লাসের dilate() মেথড ব্যবহার করে একটি চিত্র ডিলেট করতে পারেন, এই মেথড তিনটি ম্যাট অবজেক্ট গ্রহণ করে যা সোর্স, ডেস্টিনেশন এবং কার্নেল উপস্থাপন করে।

উদাহরণ

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

public class ImageDilation 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());
        
        // কার্নেল ম্যাট্রিক্স অবজেক্ট তৈরি
        Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size((2 * 2) + 1, (2 * 2) + 1));
        
        // ইমেজে ডিলেট প্রয়োগ
        Imgproc.dilate(src, dst, kernel);
        
        // ম্যাট্রিক্সকে জাভाएফএক্স রাইটেবল ইমেজে রূপান্তর
        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. জাভা ব্যবহার করে ওপেনসিভিতে ব্লার (অ্যভারেজিং) কীভাবে ইমপ্লিমেন্ট করবেন?

  3. জাভা এফএক্স ও ওপেনসিভি ব্যবহার করে চিত্রের উজ্জ্বলতা কমানোর উদাহরণ

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