কম্পিউটার

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


এই বিষয়ে, আমরা কিভাবে C++ এ OpenCV ব্যবহার করে ছবি লোড এবং দেখাব তা নির্ধারণ করব। OpenCV-এ একটি ছবি লোড করা এবং দেখানোর জন্য নিম্নলিখিত ফাংশনগুলি প্রয়োজন৷

  • ম্যাট: ম্যাট একটি ফাংশন না. এটি একটি ডেটা স্ট্রাকচার, এক ধরনের পরিবর্তনশীল। C++-এ int, char, স্ট্রিং ভেরিয়েবলের মতো, Mat হল OpenCV-এর একটি ভেরিয়েবল, যা এর ভিতরে ছবি লোড করার জন্য একটি ম্যাট্রিক্স ডেটা স্ট্রাকচার তৈরি করে। এই প্রোগ্রামে, আমরা লিখেছিলাম 'Mat myImage;'৷৷ তার মানে আমরা 'myImage' নামে একটি ম্যাট্রিক্স ভেরিয়েবল ঘোষণা করছি।
  • নামে উইন্ডো(): এটি কিছু মেমরি বরাদ্দ করে এবং ছবিটি দেখানোর জন্য একটি উইন্ডো তৈরি করে। এটি একটি ছবির ফ্রেমের মতো কাজ করে। OpenCV-এ, আমাদের ফাংশনটিকে 'namedWindow("উইন্ডোর নাম", পতাকা)' হিসাবে করতে হবে৷
  • 3 . imread(): এই ফাংশন একটি সংজ্ঞায়িত অবস্থান থেকে একটি ছবি পড়া. এই প্রোগ্রামটি 'C:' ড্রাইভ থেকে চিত্রটি পড়ে। এই ফাংশনটি ব্যবহার করার জন্য, আপনাকে এটিকে 'imread("এক্সটেনশন সহ চিত্রের অবস্থান/নাম", পতাকা)' হিসাবে লিখতে হবে৷
  • imshow(): এই ফাংশনটি সংজ্ঞায়িত উইন্ডোতে চিত্রটি দেখায়। এই ফাংশনটি ব্যবহার করার জন্য আপনাকে লিখতে হবে 'imshow(উইন্ডোর নাম", ম্যাট্রিক্সের নাম)'।
  • waitKey(): এটি OpenCV এর একটি গুরুত্বপূর্ণ কাজ। ইমেজ প্রসেস করতে এবং অপারেশন এক্সিকিউট করতে, আমাদের সিস্টেমকে কিছু সময় দিতে হবে। যদি আমরা তা না করি, আমরা করব না

এই ফাংশনটি প্রোগ্রাম বন্ধ করার আগে একটি নির্দিষ্ট সময়ের জন্য অপেক্ষা করে। আপনি waitKey(10000) ব্যবহার করলে, এটি 10 ​​সেকেন্ড পরে প্রোগ্রামটি বন্ধ করে দেবে। আপনি waitKey(0) লিখলে, এটি পছন্দসই আউটপুট পাবে। এই ফাংশনটি আমাদের সিস্টেমটিকে পরিচালনা করার জন্য প্রয়োজনীয় সময় দিতে সক্ষম করবে। ব্যবহারকারীর কাছ থেকে কীস্ট্রোকের জন্য অপেক্ষা করুন। ব্যবহারকারী কীবোর্ড থেকে কোনো কী ক্লিক করলে, প্রোগ্রামটি বন্ধ হয়ে যাবে। এই ফাংশনটিকে 'waitKey(মিলিসেকেন্ড)' হিসেবে লিখতে হবে।

  • Windows(): এই ফাংশনটি সমস্ত উইন্ডো বন্ধ করে দেয়। যখন আমরা উইন্ডোজ তৈরি করি, আমরা কিছু মেমরি বরাদ্দ করি। Window() ধ্বংস করুন ফাংশন সিস্টেমে সেই মেমরি রিলিজ করে।

নিম্নলিখিত প্রোগ্রামটি দেখায় কিভাবে OpenCV লাইব্রেরি ব্যবহার করে একটি ছবি লোড এবং দেখাতে হয়।

উদাহরণ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
   Mat myImage;//declaring a matrix named myImage//
   namedWindow("PhotoFrame");//declaring the window to show the image//
   myImage = imread("lakshmi.jpg");//loading the image named lakshme in the matrix//
   if (myImage.empty()) {//If the image is not loaded, show an error message//
      cout << "Couldn't load the image." << endl;
      system("pause");//pause the system and wait for users to press any key//
      return-1;
   }
   imshow("PhotoFrame", myImage);//display the image which is stored in the 'myImage' in the "myWindow" window//  
   destroyWindow("Photoframe");//close the window and release allocate memory//
   waitKey(0);//wait till user press any key
   return 0;
}
চাপা পর্যন্ত অপেক্ষা করুন

উপরের প্রোগ্রামটি কার্যকর করার পরে, আমরা নিম্নলিখিত আউটপুট −

পাই

আউটপুট

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


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

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

  3. কিভাবে একটি ইমেজ লোড করবেন এবং কেরাস ব্যবহার করে ইমেজ দেখাবেন?

  4. OpenCV ফাংশন সার্কেল() ব্যবহার করে একটি বৃত্ত আঁকুন