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

জাভाएফএক্স ব্যবহার করে ওপেনসিভি Mat অবজেক্ট কীভাবে প্রদর্শন করবেন?


জাভाएফএক্স লাইব্রেরি ImageView নামে একটি ক্লাস প্রদান করে যার মাধ্যমে আপনি একটি ইমেজ প্রদর্শন করতে পারেন। এই ক্লাস একটি WritableImage ক্লাসের অবজেক্ট গ্রহণ করে।

ওপেনসিভি Mat অবজেক্টে সংরক্ষিত একটি ইমেজ প্রদর্শন করতে হলে আপনাকে এটি WritableImage অবজেক্টে রূপান্তর করতে হবে এবং ImageView ক্লাসে পাস করতে হবে।

উদাহরণ

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
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 javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

public class DisplayingImagesJavaFX extends Application {
    @Override
    public void start(Stage stage) throws IOException {
        WritableImage writableImage = loadImage();
        
        // ইমেজ ভিউ সেট করা
        ImageView imageView = new ImageView(writableImage);
        imageView.setX(50);
        imageView.setY(25);
        imageView.setFitHeight(400);
        imageView.setFitWidth(500);
        imageView.setPreserveRatio(true);
        
        // একটি Group অবজেক্ট তৈরি
        Group root = new Group(imageView);
        
        // একটি Scene অবজেক্ট তৈরি
        Scene scene = new Scene(root, 600, 400);
        
        // Stage-এ টাইটল সেট করা
        stage.setTitle("একটি ইমেজ লোড করা");
        
        // Stage-এ Scene যোগ করা
        stage.setScene(scene);
        
        // Stage-এর কন্টেন্ট প্রদর্শন
        stage.show();
    }
    
    public WritableImage loadImage() throws IOException {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ফাইল থেকে ইমেজ পড়া এবং এটি একটি ম্যাট্রিক্স অবজেক্টে সংরক্ষণ
        String file = "D:\\images\\tree.jpg";
        Mat image = Imgcodecs.imread(file);
        
        // ইমেজ এনকোড করা
        MatOfByte matOfByte = new MatOfByte();
        Imgcodecs.imencode(".jpg", image, matOfByte);
        
        // এনকোড করা Mat কে বাইট অ্যারেতে সংরক্ষণ
        byte[] byteArray = matOfByte.toArray();
        
        // ইমেজ প্রদর্শন
        InputStream in = new ByteArrayInputStream(byteArray);
        BufferedImage bufImage = ImageIO.read(in);
        System.out.println("Image Loaded");
        WritableImage writableImage = SwingFXUtils.toFXImage(bufImage, null);
        return writableImage;
    }
    
    public static void main(String args[]) {
        launch(args);
    }
}

আউটপুট

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

জাভाएফএক্স ব্যবহার করে ওপেনসিভি Mat অবজেক্ট কীভাবে প্রদর্শন করবেন?


  1. জাভা এফএক্স ও ওপেনসিভি ব্যবহার করে চিত্রের উজ্জ্বলতা ও কন্ট্রাস্ট পরিবর্তন

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

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

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