কম্পিউটার

সি++ ব্যবহার করে ওপেনসিভিতে রিয়েল-টাইমে মুখটি কীভাবে ট্র্যাক করবেন?


আমরা OpenCV-তে রিয়েল-টাইমে কীভাবে মুখ ট্র্যাক করতে হয় তা শিখব। এই প্রোগ্রামটি আগের প্রোগ্রামের সাথে একই এবং পার্থক্য হল আমরা মুখ শনাক্ত করতে আয়তক্ষেত্রের পরিবর্তে উপবৃত্ত ব্যবহার করেছি এবং কনসোল উইন্ডোতে মুখের কো-অর্ডিনেট দেখানোর জন্য আমরা অতিরিক্ত 'cout' স্টেটমেন্টও ব্যবহার করেছি।

রিয়েল-টাইমে মানুষের মুখ সনাক্ত করার জন্য নিম্নলিখিত প্রোগ্রাম −

উদাহরণ

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
//This header includes definition of 'rectangle()' function//
#include<opencv2/objdetect/objdetect.hpp>
//This header includes the definition of Cascade Classifier//
#include<string>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
   Mat video_stream;//Declaring a matrix hold frames from video stream//
   VideoCapture real_time(0);//capturing video from default webcam
   namedWindow("Face Detection");//Declaring an window to show the result//
   string trained_classifier_location = "C:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml";//Defining the location our XML Trained Classifier in a string//
   CascadeClassifier faceDetector;//Declaring an object named 'face detector' of CascadeClassifier class//
   faceDetector.load(trained_classifier_location);//loading the XML trained classifier in the object//
   vector<Rect>faces;//Declaring a rectangular vector named faces//
   while (true) {
      faceDetector.detectMultiScale(video_stream, faces, 1.1, 4, CASCADE_SCALE_IMAGE, Size(30, 30));//Detecting the faces in 'image_with_humanfaces' matrix//
      real_time.read(video_stream);// reading frames from camera and loading them in 'video_stream' Matrix//
      for (int i = 0; i < faces.size(); i++){ //for locating the face
         Point center(faces[i].x + faces[i].width * 0.5, faces[i].y + faces[i].height * 0.5);//getting the center of the face//
         ellipse(video_stream, center,Size(faces[i].width * 0.5, faces[i].height * 0.5), 0, 0, 360, Scalar(255, 0, 255), 4, 8, 0);//draw an ellipse on the face//
         int horizontal = (faces[i].x + faces[i].width * 0.5);//Getting the horizontal value of coordinate//
         int vertical=(faces[i].y + faces[i].width * 0.5);//Getting the vertical value of coordinate//
         cout << "Position of the face is:" << "(" << horizontal << "," << vertical << ")" << endl;
         //Showing position in the console window//
      }
      imshow("Face Detection", video_stream);
      //Showing the detected face//
      if (waitKey(10) == 27){ //wait time for each frame is 10 milliseconds//
         break;
      }
   }
   return 0;
}

আউটপুট

সি++ ব্যবহার করে ওপেনসিভিতে রিয়েল-টাইমে মুখটি কীভাবে ট্র্যাক করবেন?

সি++ ব্যবহার করে ওপেনসিভিতে রিয়েল-টাইমে মুখটি কীভাবে ট্র্যাক করবেন?


  1. সি++ ব্যবহার করে ওপেনসিভিতে একটি নির্দিষ্ট পিক্সেলের মান কীভাবে পাবেন?

  2. কিভাবে C++ ব্যবহার করে OpenCV-এ একটি উপবৃত্ত আঁকবেন?

  3. কিভাবে C++ ব্যবহার করে OpenCV-এ একটি লাইন আঁকবেন?

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