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

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


Imgcodecs ক্লাসের imread() মেথড একটি স্ট্রিং ভ্যালু গ্রহণ করে যা ফাইল নামকে উপস্থাপন করে। এই মেথড নির্দিষ্ট ফাইলের কন্টেন্ট একটি ম্যাট্রিক্স অবজেক্টে পড়ে রিটার্ন করে। এই মেথড ব্যবহার করে আপনি একটি ইমেজের কন্টেন্ট পড়তে পারেন।

এছাড়া Imgcodecs ক্লাস এই মেথডের আরেকটি ভ্যারিয়েন্ট ও দিয়েছে যা একটি ইন্টিজার ভ্যালু গ্রহণ করে যা পড়ার মোড নির্দিষ্ট করার জন্য একটি ফ্ল্যাগ।

Imgcodecs ক্লাসের নিচের ফিল্ডগুলো ফ্ল্যাগ ভ্যালু হিসেবে ব্যবহার করা যায়:

  • IMREAD_COLOR - যদি ফ্ল্যাগ এই মান সেট করা হয়, লোড করা ইমেজ ৩-চ্যানেল BGR (ব্লু গ্রিন রেড) রঙিন ইমেজে রূপান্তরিত হবে।

  • IMREAD_GRAYSCALE - যদি ফ্ল্যাগ এই মান সেট করা হয়, লোড করা ইমেজ সিঙ্গেল-চ্যানেল গ্রেস্কেল ইমেজে রূপান্তরিত হবে।

  • IMREAD_LOAD_GDAL - যদি ফ্ল্যাগ এই মান সেট করা হয়, GDAL ড্রাইভার ব্যবহার করে ইমেজ লোড করা যাবে।

  • IMREAD_ANYCOLOR - যদি ফ্ল্যাগ এই মান সেট করা হয়, ইমেজ যেকোনো সম্ভব রঙ ফরম্যাটে পড়া হবে।

  • IMREAD_REDUCED_COLOR_2 অথবা, IMREAD_REDUCED_COLOR_4 অথবা, IMREAD_REDUCED_COLOR_8 - যদি ফ্ল্যাগ এই মান সেট করা হয়, ইমেজ তিন-চ্যানেল BGR হিসেবে পড়া হবে, এবং ইমেজের আকার ব্যবহার করা ফিল্ড অনুযায়ী মূল আকারের ১/২, ১/৪ বা ১/৮ হয়ে যাবে।

  • IMREAD_REDUCED_GRAYSCALE_2 অথবা, IMREAD_REDUCED_GRAYSCALE_4 অথবা, IMREAD_REDUCED_GRAYSCALE_8 - যদি ফ্ল্যাগ এই মান সেট করা হয়, ইমেজ সিঙ্গেল-চ্যানেল গ্রেস্কেল হিসেবে পড়া হবে, এবং ইমেজের আকার ব্যবহার করা ফিল্ড অনুযায়ী মূল আকারের ১/২, ১/৪ বা ১/৮ হয়ে যাবে।

  • IMREAD_UNCHANGED - যদি ফ্ল্যাগ এই মান সেট করা হয়, লোড করা ইমেজ যেন আছে তেনেই রিটার্ন হবে।

তাই, আপনি যদি একটি রঙিন চিত্রকে গ্রেস্কেল ইমেজ হিসেবে পড়তে চান তবে আপনাকে IMREAD_GRAYSCALE অথবা IMREAD_REDUCED_GRAYSCALE_X পাস করতে হবে প্যারামিটার হিসেবে।

উদাহরণ ১

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;

public class ReadAsGreyScale {
    public static void main(String args[]) {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা হচ্ছে
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // ফাইল থেকে ইমেজ পড়া হচ্ছে
        Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
        
        // ইমেজ লেখা হচ্ছে
        Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
        System.out.println("Image re-Saved");
    }
}

ইনপুট

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

আউটপুট

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

উদাহরণ ২

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;

public class ReadingAsGrey2 {
    public static void main(String args[]) {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা হচ্ছে
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        String input = "D://images//sunset.jpg";
        
        // ফাইল থেকে ইমেজ পড়া হচ্ছে
        Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4);
        
        // ইমেজ লেখা হচ্ছে
        Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
        System.out.println("Image re-Saved");
    }
}

আউটপুট

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


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

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

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

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