ইমেজ ব্রাইটনেস এবং কনট্রাস্ট অ্যাডজাস্টমেন্ট (Image Brightness and Contrast Adjustment)
ব্রাইটনেস এবং কনট্রাস্ট অ্যাডজাস্টমেন্ট হলো ইমেজ প্রসেসিংয়ের গুরুত্বপূর্ণ দুটি ধাপ যা ইমেজের দৃশ্যমান গুণগত মান বৃদ্ধি করতে সহায়ক। ব্রাইটনেস এবং কনট্রাস্ট পরিবর্তনের মাধ্যমে ছবির উজ্জ্বলতা এবং পার্থক্য উন্নত করা যায়, যা ছবিকে আরও স্পষ্ট ও সুন্দর করে তোলে।
১. ইমেজ ব্রাইটনেস অ্যাডজাস্টমেন্ট
ব্রাইটনেস হলো ছবির উজ্জ্বলতা বৃদ্ধি বা হ্রাস করার প্রক্রিয়া। এটি ছবির প্রতিটি পিক্সেলের মান পরিবর্তন করে, যাতে ছবির সাধারণ উজ্জ্বলতা বাড়ানো বা কমানো যায়।
প্রক্রিয়া
- প্রতিটি পিক্সেলের রঙের মানে একটি নির্দিষ্ট মান যোগ বা বিয়োগ করা হয়।
- নতুন পিক্সেল মান
NewPixelValue = OldPixelValue + BrightnessValueএই সূত্র ব্যবহার করে নির্ধারণ করা হয়। - যদি পিক্সেলের মান নির্ধারিত সীমা (0-255) এর বাইরে চলে যায়, তবে তা সীমার মধ্যে রাখতে হবে।
উদাহরণ (জাভা কোড)
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class BrightnessAdjustment {
public static void main(String[] args) {
try {
BufferedImage img = ImageIO.read(new File("path/to/your/image.jpg"));
int brightnessValue = 50; // উজ্জ্বলতা মান
for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < img.getHeight(); y++) {
int rgb = img.getRGB(x, y);
int alpha = (rgb >> 24) & 0xff;
int red = Math.min(255, Math.max(0, ((rgb >> 16) & 0xff) + brightnessValue));
int green = Math.min(255, Math.max(0, ((rgb >> 8) & 0xff) + brightnessValue));
int blue = Math.min(255, Math.max(0, (rgb & 0xff) + brightnessValue));
int newRgb = (alpha << 24) | (red << 16) | (green << 8) | blue;
img.setRGB(x, y, newRgb);
}
}
ImageIO.write(img, "jpg", new File("path/to/your/brightened_image.jpg"));
} catch (Exception e) {
e.printStackTrace();
}
}
}২. ইমেজ কনট্রাস্ট অ্যাডজাস্টমেন্ট
কনট্রাস্ট হলো ছবির উজ্জ্বল এবং অন্ধকার অংশের মধ্যে পার্থক্য বা বৈপরীত্য বাড়ানোর প্রক্রিয়া। কনট্রাস্ট বৃদ্ধির ফলে ছবির উজ্জ্বল অংশ আরও উজ্জ্বল এবং অন্ধকার অংশ আরও গাঢ় হয়।
প্রক্রিয়া
- প্রতিটি পিক্সেলের রঙের মান একটি নির্দিষ্ট গুণক দ্বারা গুণ করা হয়।
- নতুন পিক্সেল মান
NewPixelValue = (OldPixelValue - 128) * ContrastValue + 128সূত্র ব্যবহার করে নির্ধারণ করা হয়। - পিক্সেলের মান সীমার মধ্যে রাখতে
Math.minএবংMath.maxফাংশন ব্যবহার করা হয়।
উদাহরণ (জাভা কোড)
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ContrastAdjustment {
public static void main(String[] args) {
try {
BufferedImage img = ImageIO.read(new File("path/to/your/image.jpg"));
double contrastValue = 1.2; // কনট্রাস্ট মান (1.0 = কোন পরিবর্তন নেই)
for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < img.getHeight(); y++) {
int rgb = img.getRGB(x, y);
int alpha = (rgb >> 24) & 0xff;
int red = (int)(Math.min(255, Math.max(0, ((rgb >> 16) & 0xff) * contrastValue + 128 * (1 - contrastValue))));
int green = (int)(Math.min(255, Math.max(0, ((rgb >> 8) & 0xff) * contrastValue + 128 * (1 - contrastValue))));
int blue = (int)(Math.min(255, Math.max(0, (rgb & 0xff) * contrastValue + 128 * (1 - contrastValue))));
int newRgb = (alpha << 24) | (red << 16) | (green << 8) | blue;
img.setRGB(x, y, newRgb);
}
}
ImageIO.write(img, "jpg", new File("path/to/your/contrasted_image.jpg"));
} catch (Exception e) {
e.printStackTrace();
}
}
}সারসংক্ষেপ
ব্রাইটনেস এবং কনট্রাস্ট অ্যাডজাস্টমেন্ট ইমেজ প্রসেসিংয়ের দুটি মৌলিক কৌশল, যা ছবির উজ্জ্বলতা এবং পার্থক্য উন্নত করতে সহায়ক। ব্রাইটনেস ছবির সামগ্রিক উজ্জ্বলতা বাড়ায় বা কমায়, এবং কনট্রাস্ট ছবির বিভিন্ন অংশে বৈপরীত্য বৃদ্ধি করে ছবির গুণগত মান উন্নয়ন করে। সঠিকভাবে এই দুটি পদ্ধতি ব্যবহার করে ইমেজের দৃশ্যমানতা এবং আকর্ষণ বৃদ্ধি করা যায়, যা বিভিন্ন ক্ষেত্র যেমন ফটোগ্রাফি, ডিজাইন, এবং কম্পিউটার ভিশনে ব্যবহৃত হয়।