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

সুইংস ব্যবহার করে ওপেনসিভি Mat অবজেক্ট কীভাবে প্রদর্শন করবেন?


ImageIcon ক্লাস আইকন ইন্টারফেসের একটি ইমপ্লিমেন্টেশন যা ইমেজ থেকে আইকন পেইন্ট করে। আপনি এই ক্লাস ব্যবহার করে একটি সুইং উইন্ডোতে ইমেজ প্রদর্শন করতে পারেন, এই ক্লাসের কনস্ট্রাক্টর একটি BufferedImage অবজেক্ট প্যারামিটার হিসেবে গ্রহণ করে।

তাই একটি ওপেনসিভি ইমেজ যা একটি Mat অবজেক্টে সংরক্ষিত আছে তা সুইং উইন্ডো ব্যবহার করে প্রদর্শন করতে হলে, আপনাকে এটি BufferedImage অবজেক্টে রূপান্তর করতে হবে এবং ImageIcon মেথডে প্যারামিটার হিসেবে পাস করতে হবে।

উদাহরণ

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;

public class DisplayingImagesUsingSwings {
    public static void main(String args[]) throws Exception {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা
        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();
        
        // Buffered Image তৈরি
        InputStream in = new ByteArrayInputStream(byteArray);
        BufferedImage bufImage = ImageIO.read(in);
        
        // JFrame ইনস্ট্যানশিয়েট করা
        JFrame frame = new JFrame();
        
        // JFrame-এ কন্টেন্ট সেট করা
        frame.getContentPane().add(new JLabel(new ImageIcon(bufImage)));
        frame.pack();
        frame.setVisible(true);
        System.out.println("Image Loaded");
    }
}

আউটপুট

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

সুইংস ব্যবহার করে ওপেনসিভি Mat অবজেক্ট কীভাবে প্রদর্শন করবেন?


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

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

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

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