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

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে সেপিয়া (Sepia) চিত্রে রূপান্তর


রঙিন চিত্রকে সেপিয়া-এ রূপান্তরের অ্যালগরিদম:

  • প্রতিটি পিক্সেলের লাল, সবুজ, নীল মান পান।

  • এই ৩টি রঙের গড় মান পান।

  • ডেপথ (depth) ও ইন্টেনসিটি (intensity) মান সংজ্ঞায়িত করুন (আদর্শত ২০, ও ৩০)।

  • মানগুলো নিম্নরূপ পরিবর্তন করুন:

    • লাল = লাল + (ডেপথ × ২)।

    • সবুজ = সবুজ + ডেপথ।

    • নীল = নীল - ইন্টেনসিটি।

  • নিশ্চিত করুন যে পরিবর্তিত মান ০ থেকে ২৫৫ এর মধ্যে আছে।

  • সংশোধিত রঙ থেকে নতুন পিক্সেল মান তৈরি করুন এবং পিক্সেলে সেট করুন।

জাভাতে বাস্তবায়ন

  • ImageIO.read() মেথড ব্যবহার করে প্রাযন্তিক ইমেজ পড়ুন।

  • ইমেজের উচ্চতা ও প্রস্থ পান।

  • নেস্টেড ফর লুপ ব্যবহার করে ইমেজের প্রতিটি পিক্সেলের মাধ্যমে ট্রাভার্স করুন।

  • getRGB() মেথড ব্যবহার করে পিক্সেল মান পান।

  • উপরোক্ত রিট্রিভ করা পিক্সেল মান পাস করে একটি Color অবজেক্ট তৈরি করুন।

  • getRed(), getGreen() এবং getBlue() মেথড ব্যবহার করে কালার অবজেক্ট থেকে লাল, সবুজ, নীল মান পান।

  • অ্যালগরিদমে নির্দিষ্ট Ange nuovi লাল, সবুজ ও নীল মান হিসাব করুন।

  • সংশোধিত RGB মান দিয়ে একটি নতুন পিক্সেল তৈরি করুন।

  • setRGB() মেথড ব্যবহার করে নতুন পিক্সেল মান সেট করুন।

উদাহরণ

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

public class Color2Sepia {
    public static void main(String args[]) throws IOException {
        // ইমেজ পড়া হচ্ছে
        File file = new File("D:\\Images\\cuba.jpg");
        BufferedImage img = ImageIO.read(file);
        
        for (int y = 0; y < img.getHeight(); y++) {
            for (int x = 0; x < img.getWidth(); x++) {
                // একটি পিক্সেলের মান রিট্রিভ করা হচ্ছে
                int pixel = img.getRGB(x, y);
                
                // পিক্সেল মান থেকে Color অবজেক্ট তৈরি
                Color color = new Color(pixel, true);
                
                // R G B মান রিট্রিভ করা হচ্ছে
                int red = color.getRed();
                int green = color.getGreen();
                int blue = color.getBlue();
                
                int avg = (red + green + blue) / 3;
                int depth = 20;
                int intensity = 30;
                
                red = avg + (depth * 2);
                green = avg + depth;
                blue = avg - intensity;
                
                // RGB মান ০-২৫৫ এর মধ্যে আছে কিনা নিশ্চিত করা
                if (red > 255) red = 255;
                if (green > 255) green = 255;
                if (blue > 255) blue = 255;
                if (blue < 0) blue = 0;
                
                // নতুন Color অবজেক্ট তৈরি
                color = new Color(red, green, blue);
                
                // ইমেজে নতুন Color অবজেক্ট সেট করা হচ্ছে
                img.setRGB(x, y, color.getRGB());
            }
        }
        
        // সংশোধিত ইমেজ সংরক্ষণ
        file = new File("D:\\Images\\sepia_image2.jpg");
        ImageIO.write(img, "jpg", file);
        System.out.println("Done...");
    }
}

ইনপুট

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে সেপিয়া (Sepia) চিত্রে রূপান্তর

আউটপুট

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে সেপিয়া (Sepia) চিত্রে রূপান্তর


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

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে ব্লু/গ্রিন/রেড চিত্রে রূপান্তর

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে রঙিন চিত্রকে গ্রেস্কেলে রূপান্তর

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