কম্পিউটার

ওপেনসিভিতে সরাসরি অ্যাক্সেস পদ্ধতি ব্যবহার করে পিক্সেল মানগুলি কীভাবে পরিবর্তন করবেন?


পূর্ববর্তী পদ্ধতিতে ('at' পদ্ধতি), পিক্সেল মানগুলি অ্যাক্সেস করার সময় আমাদের চিত্রের ধরণটি নির্দিষ্ট করতে হবে। আরেকটি পদ্ধতি আছে যা 'at' পদ্ধতির চেয়ে সহজ। একে বলা হয় সরাসরি প্রবেশ পদ্ধতি। এই পদ্ধতিটি ব্যবহার করে পিক্সেল মান অ্যাক্সেস করতে, আমাদের ম্যাটের ধরন উল্লেখ করতে হবে যেমন ম্যাট<উচার>, ম্যাট, ম্যাট ইত্যাদি।

নিম্নলিখিত প্রোগ্রামটি দেখায় কিভাবে OpenCV-তে সরাসরি অ্যাক্সেস পদ্ধতি ব্যবহার করে পিক্সেল মান পরিবর্তন করতে হয়।

উদাহরণ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;//Declaring cv namespace
using namespace std;
void direct_access(Mat_<Vec3b> &image, int n){ //Declaring the function//
   for (int x = 0; x < n; x++){ //initiating a for loop//
      int i = rand() % image.cols;//accessing random column//
      int j = rand() % image.rows;//accessing random rows//
      image(j, i) = 0;//setting the pixel values to zero//
   }
}
int main() {
   Mat_<Vec3b> image;//taking an image matrix//
   Mat unchanged_Image;//taking another image matrix//
   image = imread("sky.jpg");//loading an image//
   unchanged_Image = imread("sky.jpg");//loading the same image//
   namedWindow("Noisy Image");//Declaring an window//
   namedWindow("Unchanged Image");//Declaring another window//
   direct_access(image, 4000);//calling the direct access function//
   imshow("Noisy Image", image);//showing the Noisy image
   imshow("Unchanged Image", unchanged_Image);//showing the unchanged image//
   waitKey(0);//wait for Keystroke//
   return 0;
}

আউটপুট

ওপেনসিভিতে সরাসরি অ্যাক্সেস পদ্ধতি ব্যবহার করে পিক্সেল মানগুলি কীভাবে পরিবর্তন করবেন?


  1. কিভাবে C++ ব্যবহার করে OpenCV-তে ইমেজ লোড এবং দেখাবেন?

  2. কিভাবে জাভা OpenCV লাইব্রেরি ব্যবহার করে একটি ছবির পিক্সেল (RGB মান) পেতে হয়?

  3. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের পিক্সেল (আরজিবি মান) কীভাবে সেট/পরিবর্তন করবেন?

  4. পাইথনে স্কিট-লার্ন ব্যবহার করে একটি চিত্রের পিক্সেল মানগুলি কীভাবে দেখতে হয়?