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

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কালার স্পেস কীভাবে পরিবর্তন করবেন?


কালার স্পেস প্রোটোকল ব্যবহার করে একটি চিত্রের রঙ উপস্থাপন করা যায়। ওপেনসিভিতে বেশ কিছু কালার স্পেস উপলব্ধ, তাদের মধ্যে:

  • BGR - RGB সবচেয়ে ব্যাপক ব্যবহৃত কালার স্পেস যেখানে প্রতিটি পিক্সেল তিনটি ভিন্ন রঙ (লাল, নীল, সবুজ) থেকে গঠিত। এটি ওপেনসিভির ডিফল্ট কালার স্পেস কিন্তু এটি BGR আকারে সংরক্ষিত থাকে।

  • HSV - HSV কালার স্পেসে হিউ, স্যাচুরেশন এবং ব্রাইটনেস পরিবর্তন করে বিভিন্ন রঙ তৈরি করা হয়।

  • CMYK - এটি একটি সাবট্রেক্টিভ কালার স্পেস যেখানে সায়ান, মাজেন্টা এবং ইয়েলো মান বিয়োগ করে সাদা থেকে রঙ তৈরি করা হয়।

  • Y'UV - Y'UV একটি লুমা (Y') এবং দুটি ক্রোমিন্যান্স (UV) কম্পোনেন্টে কালার স্পেস সংজ্ঞায়িত করে। Y'UV কালার মডেল কম্পোজিট কালার ভিডিও Стан্ডার্ডে ব্যবহৃত হয়।

আপনি org.opencv.imgproc.Imgproc ক্লাসের cvtColor() মেথড ব্যবহার করে একটি চিত্রের রিপ্রেজেন্টেশন একটি কালার স্পেস থেকে অন্যকে রূপান্তর করতে পারেন। এই মেথড একটি সোর্স ইমেজ, ডেস্টিনেশন ইমেজ এবং ডেস্টিনেশন ইমেজের রঙ উপস্থাপন करने वाला কোড গ্রহণ করে।

BGR থেকে HSV-এ কালার স্পেস পরিবর্তন করতে COLOR_BGR2HSV কালার কোড মান হিসেবে পাস করতে হবে। অনুরূপভাবে BGR থেকে YUV-এ পরিবর্তন করতে COLOR_BGR2YUV পাস করতে হবে।

উদাহরণ

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ChangingColorSpaces {
    public static void main(String args[]) throws Exception {
        // ওপেনসিভি কোর লাইব্রেরি লোড করা
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        // চিত্র পড়া
        Mat src = Imgcodecs.imread("D:\\images\\elephant.jpg");
        
        // খালি ডেস্টিনেশন ম্যাট্রিক্স তৈরি
        Mat dst = new Mat();
        
        // BGR থেকে গ্রে-এ রূপান্তর
        Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
        HighGui.imshow("BGR to Gray", dst);
        
        dst = new Mat();
        // BGR থেকে HSV-এ রূপান্তর
        Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2HSV);
        HighGui.imshow("BGR to HSV", dst);
        
        dst = new Mat();
        // BGR থেকে YUV-এ রূপান্তর
        Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2YUV);
        HighGui.imshow("BGR to YUV", dst);
        
        HighGui.waitKey();
    }
}

ইনপুট চিত্র

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কালার স্পেস কীভাবে পরিবর্তন করবেন?

আউটপুট

প্রোগ্রামটি এক্সিকিউট করার পর নিচের উইন্ডোগুলো তৈরি হবে:

BGR to Gray

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কালার স্পেস কীভাবে পরিবর্তন করবেন?

BGR to HSV

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কালার স্পেস কীভাবে পরিবর্তন করবেন?

BGR to YUV

জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কালার স্পেস কীভাবে পরিবর্তন করবেন?


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

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

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের পিক্সেল (RGB মান) সেট/মডিফাই করা

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