কম্পিউটার

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?


একটি চিত্রের উজ্জ্বলতা এবং বৈপরীত্যের বৃদ্ধি/হ্রাস হল সেই ক্রিয়াকলাপ যা চিত্রের পিক্সেলগুলিকে রূপান্তর করে অর্জন করা যেতে পারে। এটিকে −

হিসাবে একটি সমীকরণ আকারে প্রকাশ করা যেতে পারে
g(i, j) = α . f(i, j)+ β

কোথায়,

  • (i, j) হল পিক্সেলের অবস্থান।

  • α (লাভ) এবং β (পক্ষপাত) হল রূপান্তরের পরামিতি।

  • অনেক সময় গেইন প্যারামিটার একটি ছবির বৈসাদৃশ্য নিয়ন্ত্রণ করে এবং বায়াস প্যারামিটার একটি ছবির উজ্জ্বলতা নিয়ন্ত্রণ করে।

convertTo() org.opencv.core.Mat এর পদ্ধতি ক্লাস একটি চিত্রের বৈসাদৃশ্য এবং উজ্জ্বলতা পরিবর্তন করতে প্রদত্ত ম্যাট্রিক্সে প্রয়োজনীয় গণনা করে। এই পদ্ধতিটি 4টি পরামিতি গ্রহণ করে −

  • মাদুর − উৎস ম্যাট্রিক্সের মতো একই আকার এবং টাইপ সহ ফলাফল ধরে রাখতে খালি ম্যাট্রিক্স।

  • টাইপ - আউটপুট ম্যাট্রিক্সের ধরন নির্দিষ্ট করে পূর্ণসংখ্যার মান। যদি এই মানটি ঋণাত্মক হয়, তাহলে ধরনটি উৎসের মতোই হবে৷

  • আলফা − লাভ মান, যা অবশ্যই 0-এর বেশি হতে হবে (ডিফল্ট মান 1)।

  • বিটা − বায়াস মান (ডিফল্ট মান 0)।

ওপেনসিভি জাভা লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করা

যেমন উল্লেখ করা হয়েছে এই পদ্ধতিতে পাস করা আলফা মান অ্যানিমেজের বৈপরীত্যকে পরিবর্তন করে, যদি এই প্যারামিটারের জন্য নির্বাচিত মান 1 (থেকে 0) এর কম হয় তবে ছবির বৈসাদৃশ্য কমে যায়। একইভাবে, যদি এটি 1 (255 থেকে) এর বেশি হয় তবে চিত্রের বৈসাদৃশ্য বৃদ্ধি পায়।

একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করতে -

  • loadLibrary() পদ্ধতি ব্যবহার করে OpenCV নেটিভ লাইব্রেরি লোড করুন।

  • imread()পদ্ধতি

    ব্যবহার করে একটি ম্যাট অবজেক্টে পছন্দসই ছবির বিষয়বস্তু পড়ুন
  • আগের ধাপে প্রাপ্ত ম্যাট্রিক্সের মতো একই আকার এবং টাইপ সহ একটি খালি ম্যাট্রিক্স তৈরি করুন।

  • convertTo()কে আহ্বান করুন খালি ম্যাট্রিক্স, -1 (একই টাইপ পেতে), বৈসাদৃশ্য বাড়ানো বা কমানোর জন্য আলফা মান (0-1 বা, 1-100) এবং 0 বিটা মান হিসাবে পাস করার মাধ্যমে।

  • TheImgcodecs.imwrite() পদ্ধতি ব্যবহার করে ফলাফল ম্যাট্রিক্সের বিষয়বস্তু একটি আউটপুট চিত্র হিসাবে লিখুন।

উদাহরণ

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class AlteringContrast {
   public static void main (String[] args) {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the Image from the file
      String file ="D:\\Images\\car3.jpg";
      Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR);
      //Creating an empty matrix
      Mat dest = new Mat(src.rows(), src.cols(), src.type());
      //Increasing the contrast of the image
      src.convertTo(dest, -1, 10, 0);
      // Writing the image
      Imgcodecs.imwrite("D:\\Images\\altering_contrast_10.jpg", dest);
   }
}

ইনপুট ছবি

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?

নিচে বিভিন্ন আলফা এর জন্য বিভিন্ন আউটপুট চিত্র রয়েছে মান −

α-মান:0.5

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?

α-মান:0.8

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?

α-মান:1.5

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?

α-মান:2.0

কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?


  1. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে কীভাবে একটি মিরর ইমেজ তৈরি করবেন?

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি রঙিন চিত্রকে সেপিয়া ছবিতে কীভাবে রূপান্তর করবেন?

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি নেতিবাচক চিত্রকে ইতিবাচক ছবিতে রূপান্তর করবেন কীভাবে?

  4. কিভাবে জাভা OpenCV লাইব্রেরি ব্যবহার করে একটি ছবি লিখতে হয়?