ইমেজে কালার ফিল্টার প্রয়োগ

কালার ইমেজ প্রসেসিং (Color Image Processing) - জাভা দিয়ে ডিজিটাল ইমেজ প্রসেসিং (Digital Image Processing using Java) - Computer Science

281

ইমেজে কালার ফিল্টার প্রয়োগ (Applying Color Filters to an Image)

কালার ফিল্টারিং হল ডিজিটাল ইমেজ প্রসেসিংয়ে একটি গুরুত্বপূর্ণ কৌশল, যা ছবির রঙের বিশেষ অংশে পরিবর্তন আনে। এটি ছবির রঙের তীব্রতা বা শেড কন্ট্রোল করতে ব্যবহার করা হয়, যেমন একটি নির্দিষ্ট রঙের ইনফ্লুয়েন্স বাড়ানো বা কমানো।

কালার ফিল্টার প্রয়োগের জন্য মূলত RGB (Red, Green, Blue) চ্যানেলের উপর কাজ করা হয়, যেখানে আপনি প্রতিটি চ্যানেলের মান পরিবর্তন করতে পারেন, বা নির্দিষ্ট রঙের শেডকে আলাদা করতে পারেন।

ইমেজে কালার ফিল্টার প্রয়োগের কৌশল

আমরা এখানে কয়েকটি কালার ফিল্টারিং কৌশল দেখবো, যেমন রেড, গ্রীন বা ব্লু রঙের ইনফ্লুয়েন্স বাড়ানো অথবা ছবির সম্পূর্ণ রঙ পাল্টানো।


১. রঙের একক চ্যানেল (Single Channel) ফিল্টার প্রয়োগ

এখানে আমরা ছবির শুধুমাত্র একটি চ্যানেল, যেমন রেড, গ্রীন বা ব্লু চ্যানেলের ইনফ্লুয়েন্স বাড়িয়ে দেখব। এর মাধ্যমে নির্দিষ্ট রঙের প্রাধান্য সৃষ্টি হয়।

উদাহরণ: রেড ফিল্টার প্রয়োগ

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

public class RedFilter {
    public static void main(String[] args) {
        try {
            // ইমেজ লোড করা
            File inputFile = new File("path/to/your/image.jpg");
            BufferedImage image = ImageIO.read(inputFile);
            
            // ইমেজে রেড ফিল্টার প্রয়োগ
            for (int i = 0; i < image.getWidth(); i++) {
                for (int j = 0; j < image.getHeight(); j++) {
                    Color c = new Color(image.getRGB(i, j));
                    int red = c.getRed();
                    int green = c.getGreen();
                    int blue = c.getBlue();
                    
                    // শুধুমাত্র রেড চ্যানেল রেখে বাকী দুইটি চ্যানেল (গ্রীন, ব্লু) ০ করে দেয়া
                    Color newColor = new Color(red, 0, 0);
                    image.setRGB(i, j, newColor.getRGB());
                }
            }

            // ফলস্বরূপ ছবি সেভ করা
            File outputFile = new File("path/to/save/red_filtered_image.jpg");
            ImageIO.write(image, "jpg", outputFile);

            System.out.println("Red Filter Applied and Image Saved!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে রেড ফিল্টার প্রয়োগ করা হয়েছে, যেখানে রঙের সবুজ এবং নীল চ্যানেল বাদ দিয়ে শুধুমাত্র রেড চ্যানেল রেখে দেওয়া হয়েছে।


২. কালার ইনভার্সন (Color Inversion)

এটি ছবির সমস্ত রঙের উল্টে দেওয়ার একটি পদ্ধতি। মানে, রেড, গ্রীন এবং ব্লু চ্যানেলের মানগুলি উল্টে যাবে, যা ছবির প্রতিটি রঙের বিপরীত তৈরি করে।

উদাহরণ: কালার ইনভার্সন

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

public class InvertColor {
    public static void main(String[] args) {
        try {
            // ইমেজ লোড করা
            File inputFile = new File("path/to/your/image.jpg");
            BufferedImage image = ImageIO.read(inputFile);
            
            // কালার ইনভার্সন প্রয়োগ
            for (int i = 0; i < image.getWidth(); i++) {
                for (int j = 0; j < image.getHeight(); j++) {
                    Color c = new Color(image.getRGB(i, j));
                    int red = 255 - c.getRed();
                    int green = 255 - c.getGreen();
                    int blue = 255 - c.getBlue();
                    
                    // ইনভার্সড কালার
                    Color newColor = new Color(red, green, blue);
                    image.setRGB(i, j, newColor.getRGB());
                }
            }

            // ফলস্বরূপ ছবি সেভ করা
            File outputFile = new File("path/to/save/inverted_image.jpg");
            ImageIO.write(image, "jpg", outputFile);

            System.out.println("Color Inversion Applied and Image Saved!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে কালার ইনভার্সন প্রয়োগ করা হয়েছে, যেখানে ছবির রঙগুলো উল্টে দেওয়া হয়েছে। প্রতিটি পিক্সেলের রঙের মান (0 থেকে 255) উল্টে গেছে।


৩. RGB চ্যানেল একত্রিত করা (Merging RGB Channels)

এখানে, আমরা একাধিক রঙের চ্যানেল মিশিয়ে একটি নতুন রঙের প্রভাব তৈরি করবো। উদাহরণস্বরূপ, আমরা সবুজ এবং নীল চ্যানেল মিশিয়ে একটি নতুন কালার ফিল্টার তৈরি করব।

উদাহরণ: গ্রীন এবং ব্লু মিশ্রিত ফিল্টার

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

public class GreenBlueFilter {
    public static void main(String[] args) {
        try {
            // ইমেজ লোড করা
            File inputFile = new File("path/to/your/image.jpg");
            BufferedImage image = ImageIO.read(inputFile);
            
            // গ্রীন এবং ব্লু চ্যানেল মিশিয়ে একটি নতুন রঙ তৈরি করা
            for (int i = 0; i < image.getWidth(); i++) {
                for (int j = 0; j < image.getHeight(); j++) {
                    Color c = new Color(image.getRGB(i, j));
                    int green = c.getGreen();
                    int blue = c.getBlue();
                    
                    // গ্রীন এবং ব্লু চ্যানেল মিশিয়ে একটি নতুন রঙ তৈরি করা
                    Color newColor = new Color(0, green, blue);
                    image.setRGB(i, j, newColor.getRGB());
                }
            }

            // ফলস্বরূপ ছবি সেভ করা
            File outputFile = new File("path/to/save/green_blue_filtered_image.jpg");
            ImageIO.write(image, "jpg", outputFile);

            System.out.println("Green and Blue Filter Applied and Image Saved!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে গ্রীন এবং ব্লু ফিল্টার প্রয়োগ করা হয়েছে, যেখানে কেবল গ্রীন এবং ব্লু চ্যানেলকে মিশিয়ে একটি নতুন ছবি তৈরি করা হয়েছে।


সারসংক্ষেপ

কালার ফিল্টারিং ইমেজ প্রসেসিংয়ের একটি শক্তিশালী কৌশল যা বিভিন্ন রঙের প্রভাব পরিবর্তন করতে ব্যবহৃত হয়। রেড ফিল্টার, কালার ইনভার্সন, এবং RGB চ্যানেল একত্রিত করা কিছু সাধারণ কৌশল যা ছবির রঙের প্রভাব পরিবর্তন করতে ব্যবহৃত হয়। জাভা ব্যবহার করে এই ফিল্টারগুলি প্রয়োগ করে আপনি ছবির রঙে ব্যাপক পরিবর্তন করতে পারেন, যা বিভিন্ন অ্যাপ্লিকেশনে যেমন ফটো এডিটিং, কম্পিউটার ভিশন, এবং গ্রাফিক ডিজাইনে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...