কম্পিউটার

কিভাবে C++ ব্যবহার করে OpenCV তে বাইনারি ইমেজ তৈরি করবেন?


একটি বাইনারি ইমেজ শুধুমাত্র একটি ডিজিটাল ইমেজ যা দুটি রঙের প্রতিনিধিত্ব করে, কালো এবং সাদা। একটি চিত্র প্রক্রিয়াকরণের দৃষ্টিকোণ থেকে, একটি বাইনারি ছবিতে দুটি সম্ভাব্য মান সহ পিক্সেল রয়েছে- শূন্য এবং একটি। যখন একটি পিক্সেলের মান 0 হয়, তখন এটি একটি বিশুদ্ধ কালো রঙের প্রতিনিধিত্ব করে। যখন পিক্সেলের মান 1 হয়, তখন এর অর্থ বিশুদ্ধ সাদা রঙ।

একটি গ্রেস্কেল ছবিতে, প্রতিটির জন্য 256টি ভিন্ন সম্ভাব্য মান রয়েছে। কিন্তু বাইনারি ইমেজে, শুধুমাত্র দুটি সম্ভাব্য মান আছে। বাইনারি ইমেজ বিভিন্ন ধরনের অ্যাপ্লিকেশন আছে. উদাহরণস্বরূপ, রূপগত রূপান্তরের জন্য একটি বাইনারি চিত্র প্রয়োজন, পটভূমি থেকে বস্তুর আকৃতি নিষ্কাশনের জন্য একটি বাইনারি চিত্রের প্রয়োজন ইত্যাদি। OpenCV ব্যবহার করে, আমরা একটি ছবিকে একটি বাইনারি ছবিতে অবাধে রূপান্তর করতে পারি।

নিচের উদাহরণটি হল 'original_image' ম্যাট্রিক্সে লোড করা ছবিকে একটি গ্রেস্কেল ছবিতে রূপান্তর করা এবং 'grayscale_image' ম্যাট্রিক্সে সংরক্ষণ করা হচ্ছে-

cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);

পরবর্তী লাইনটি গ্রেস্কেল চিত্রটিকে একটি বাইনারি ছবিতে রূপান্তর করছে এবং রূপান্তরিত চিত্রটিকে 'বাইনারী_ইমেজ' ম্যাট্রিক্সে সংরক্ষণ করছে৷

threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);

এখানে 'grayscale_image' হল সোর্স ম্যাট্রিক্স, 'binary_image' হল গন্তব্য ম্যাট্রিক্স। এর পরে, 100 এবং 255 দুটি মান রয়েছে। এই দুটি মান থ্রেশহোল্ড পরিসরের প্রতিনিধিত্ব করে। এই লাইনে, থ্রেশহোল্ড পরিসীমা রূপান্তরিত করা গ্রেস্কেল পিক্সেল মানগুলিকে প্রতিনিধিত্ব করে৷

নিম্নলিখিত প্রোগ্রামটি একটি চিত্র লোড করে এবং এটিকে একটি বাইনারি ছবিতে রূপান্তর করে৷

উদাহরণ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
   Mat original_image;//declaring a matrix to load the original image//
   Mat grayscale_image;//declaring a matrix to store grayscale image//
   Mat binary_image;//declaring a matrix to store the binary image
   namedWindow("Original Image");//declaring window to show binary image//
   namedWindow("Show Binary");//declaring window to show original image//
   original_image = imread("teddy.jpg");//loading image into matrix//
   cvtColor(original_image, grayscale_image, COLOR_BGR2GRAY);//Converting BGR to Grayscale image and storing it into converted matrix//
   threshold(grayscale_image, binary_image, 100, 255, THRESH_BINARY);//converting grayscale image stored in converted matrix into binary image//
   imshow("Original Image", original_image);//showing Original Image//
   imshow("Show Binary", binary_image);//showing Binary Image//
   waitKey(0);
   return 0;
}

আউটপুট

কিভাবে C++ ব্যবহার করে OpenCV তে বাইনারি ইমেজ তৈরি করবেন?


  1. কিভাবে C++ ব্যবহার করে OpenCV তে একটি বাইনারি ইমেজ উল্টাতে হয়?

  2. C++ ব্যবহার করে ওপেনসিভিতে একটি ছবির চ্যানেলের সংখ্যা কীভাবে গণনা করা যায়?

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

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