Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

OpenCV में C++ का उपयोग करके वास्तविक समय में चेहरे को ट्रैक करें


हम सीखेंगे कि OpenCV में वास्तविक समय में चेहरे को कैसे ट्रैक करें। यह प्रोग्राम पिछले प्रोग्राम के समान है और अंतर यह है कि हमने चेहरे की पहचान के लिए आयत के बजाय दीर्घवृत्त का उपयोग किया और हमने कंसोल विंडो में चेहरे के निर्देशांक दिखाने के लिए अतिरिक्त 'cout' स्टेटमेंट का भी उपयोग किया।

मानव चेहरे का वास्तविक समय में पता लगाने के लिए निम्नलिखित प्रोग्राम -

उदाहरण

#include<iostream> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> //इस हेडर में 'rectangle()' फंक्शन की परिभाषा शामिल है// #include<opencv2/objdetect/objdetect.hpp> //इस हेडर में Cascade Classifier की परिभाषा शामिल है// #include<string> using namespace std; using namespace cv; int main(int argc, char** argv) {    Mat video_stream;//वीडियो स्ट्रीम से फ्रेम रखने के लिए मैट्रिक्स घोषित करना//    VideoCapture real_time(0);//डिफ़ॉल्ट वेबकैम से वीडियो कैप्चर करना    namedWindow("Face Detection");//परिणाम दिखाने के लिए एक विंडो घोषित करना//    string trained_classifier_location = "C:/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml";//एक स्ट्रिंग में हमारे XML प्रशिक्षित क्लासिफायर का स्थान परिभाषित करना//    CascadeClassifier faceDetector;//CascadeClassifier क्लास का 'face detector' नामक ऑब्जेक्ट घोषित करना//    faceDetector.load(trained_classifier_location);//ऑब्जेक्ट में XML प्रशिक्षित क्लासिफायर लोड करना//    vector<Rect>faces;//faces नामक आयताकार वेक्टर घोषित करना//    while (true) {       faceDetector.detectMultiScale(video_stream, faces, 1.1, 4, CASCADE_SCALE_IMAGE, Size(30, 30));//'image_with_humanfaces' मैट्रिक्स में चेहरों का पता लगाना//       real_time.read(video_stream);//कैमरे से फ्रेम पढ़ना और उन्हें 'video_stream' मैट्रिक्स में लोड करना//       for (int i = 0; i < faces.size(); i++){ //चेहरे का पता लगाने के लिए          Point center(faces[i].x + faces[i].width * 0.5, faces[i].y + faces[i].height * 0.5);//चेहरे का केंद्र प्राप्त करना//          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);//चेहरे पर दीर्घवृत्त बनाना//          int horizontal = (faces[i].x + faces[i].width * 0.5);//निर्देशांक का क्षैतिज मान प्राप्त करना//          int vertical=(faces[i].y + faces[i].width * 0.5);//निर्देशांक का लंबवत मान प्राप्त करना//          cout << "Position of the face is:" << "(" << horizontal << "," << vertical << ")" << endl;          //कंसोल विंडो में स्थिति दिखाना//       }       imshow("Face Detection", video_stream);       //पता लगाए गए चेहरे को दिखाना//       if (waitKey(10) == 27){ //प्रत्येक फ्रेम के लिए प्रतीक्षा समय 10 मिलीसेकंड//          break;       }    }    return 0; }

आउटपुट

OpenCV में C++ का उपयोग करके वास्तविक समय में चेहरे को ट्रैक करें

OpenCV में C++ का उपयोग करके वास्तविक समय में चेहरे को ट्रैक करें


  1. OpenCV में C++ का उपयोग करके दीर्घवृत्त कैसे बनाएं? OpenCV में C++ का उपयोग करके दीर्घवृत्त कैसे बनाएं?

    दीर्घवृत्त बनाने के लिए, हमें एक केंद्र, प्रमुख अक्ष और लघु अक्ष की आवश्यकता होती है। इसका मतलब है कि हमें दीर्घवृत्त के लिए तीन पैरामीटर चाहिए। हमें एक मैट्रिक्स चाहिए जहां हम दीर्घवृत्त बनाएंगे, और हमें लाइन की मोटाई और लाइन का रंग घोषित करना होगा। जब हम OpenCV का उपयोग करके दीर्घवृत्त बनाना चाहते

  1. OpenCV में C++ का उपयोग करके रेखा कैसे बनाएं? OpenCV में C++ का उपयोग करके रेखा कैसे बनाएं?

    रेखा बनाने के लिए हमें दो बिंदुओं की आवश्यकता होती है - प्रारंभिक बिंदु और अंतिम बिंदु। हमें रेखा खींचने के लिए एक कैनवास की भी आवश्यकता होती है। OpenCV का उपयोग करके, मैट्रिक्स हमारा कैनवास है, हमें रेखा के प्रारंभिक और अंतिम बिंदुओं को परिभाषित करने की आवश्यकता होती है। हमें रेखा को एक रंग निर्दिष

  1. OpenCV में C++ का उपयोग करके इमेज के चैनलों की संख्या कैसे गिनें? OpenCV में C++ का उपयोग करके इमेज के चैनलों की संख्या कैसे गिनें?

    इस विषय में, हम समझेंगे कि इमेज के चैनलों की संख्या कैसे पता करें। प्रोग्राम चलाने के बाद, चैनलों की संख्या कंसोल विंडो में दिखाई जाएगी। चैनलों की संख्या प्राप्त करने के लिए, हमने OpenCV की channels() नामक एक क्लास का उपयोग किया है। जब हम इमेज मैट्रिक्स को channels() क्लास के ऑब्जेक्ट के रूप में पास