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

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে দুটি চিত্র তুলনা


দুটি চিত্র তুলনা করতে -

  • Image.IO.read() মেথড ব্যবহার করে উভয়ই পড়ুন।

  • উভয়ের উচ্চতা ও প্রস্থ পেয়ে নিশ্চিত করুন যে তারা সমান।

  • পিক্সেল মান পান এবং উভয় চিত্রের RGB মান পান।

  • এই দুটি চিত্রের RGB মানের পার্থক্যের যোগফল পান।

  • নিচের সূত্র ব্যবহার করে পার্থক্যের শতকরা হার হিসাব করুন:

গড় = পার্থক্য / প্রস্থ * উচ্চতা * 3;
শতকরা = (গড় / 255) * 100;

উদাহরণ

import java.awt.Color;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;

public class ComparingImages {
    public static void main(String[] args) throws Exception {
        BufferedImage img1 = ImageIO.read(new File("D:\\Images\\test1.jpg"));
        BufferedImage img2 = ImageIO.read(new File("D:\\Images\\test2.jpg"));
        int w1 = img1.getWidth();
        int w2 = img2.getWidth();
        int h1 = img1.getHeight();
        int h2 = img2.getHeight();
        
        if ((w1 != w2) || (h1 != h2)) {
            System.out.println("উভয় চিত্রের একই ডায়মেনশন থাকতে হবে");
        } else {
            long diff = 0;
            for (int j = 0; j < h1; j++) {
                for (int i = 0; i < w1; i++) {
                    // একটি পিক্সেলের RGB মান পাচ্ছি
                    int pixel1 = img1.getRGB(i, j);
                    Color color1 = new Color(pixel1, true);
                    int r1 = color1.getRed();
                    int g1 = color1.getGreen();
                    int b1 = color1.getBlue();
                    
                    int pixel2 = img2.getRGB(i, j);
                    Color color2 = new Color(pixel2, true);
                    int r2 = color2.getRed();
                    int g2 = color2.getGreen();
                    int b2 = color2.getBlue();
                    
                    // দুটি চিত্রের RGB মানের পার্থক্যের যোগফল
                    long data = Math.abs(r1 - r2) + Math.abs(g1 - g2) + Math.abs(b1 - b2);
                    diff = diff + data;
                }
            }
            double avg = diff / (w1 * h1 * 3);
            double percentage = (avg / 255) * 100;
            System.out.println("পার্থক্য: " + percentage);
        }
    }
}

ইনপুট ১

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে দুটি চিত্র তুলনা

ইনপুট ২

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে দুটি চিত্র তুলনা

আউটপুট

পার্থক্য: 92.54901960784314

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

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে 네가েটিভ চিত্রকে পজিটিভ চিত্রে রূপান্তর

  3. জাভা ওপেনসিভি ব্যবহার করে দুটি চিত্রের ওপর বিটওয়াইজ OR অপারেশন

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