का उपयोग कर ओपनसीवी ट्रैकिंग मैं अपने ट्रैकिंग एल्गोरिदम के आधार के रूप में कार्य करने के लिए इसका उपयोग करता हूं।ऑप्टिकल प्रवाह
//1. detect the features
cv::goodFeaturesToTrack(gray_prev, // the image
features, // the output detected features
max_count, // the maximum number of features
qlevel, // quality level
minDist); // min distance between two features
// 2. track features
cv::calcOpticalFlowPyrLK(
gray_prev, gray, // 2 consecutive images
points_prev, // input point positions in first im
points_cur, // output point positions in the 2nd
status, // tracking success
err); // tracking error
cv::calcOpticalFlowPyrLK
इनपुट के रूप में पिछले छवि से अंकों की वेक्टर लेता है, और अगले छवि पर उपयुक्त अंक देता है। मान लीजिए कि पिछले छवि पर मेरे पास यादृच्छिक पिक्सेल (एक्स, वाई) है, तो मैं ओपनसीवी ऑप्टिकल फ्लो फ़ंक्शन का उपयोग करके अगली छवि पर इस पिक्सेल की स्थिति की गणना कैसे कर सकता हूं?
मुझे लगता है कि आप केवल एक बार के लिए सुविधा का पता लगाने के लिए करते हैं। मैंने इस कोड का परीक्षण किया है। मैंने पाया कि पहली छवि पर पाए गए केवल सुविधाओं को ट्रैक किया जा सकता है। यदि ये सभी सुविधाएं छवि से परे जाती हैं, तो ट्रैक करने के लिए कोई सुविधा नहीं होगी। मुझे 3 डी निर्माण के लिए ऑप्टिकल प्रवाह का उपयोग करने की आवश्यकता है। फिर हम लगातार पुरानी सुविधाओं को कैसे ट्रैक कर सकते हैं और इस बीच नई छवि सुविधाओं को जोड़ सकते हैं? धन्यवाद। – Shiyu
हां, आप केवल 'goodFeaturesToTrack' के साथ सुविधाओं का पता लगाते हैं, फिर ऑप्टिकल प्रवाह विधि बस उन्हें ट्रैक करती है। यदि आप प्रत्येक फ्रेम में सुविधाओं की एक निश्चित संख्या को बनाए रखना चाहते हैं, तो आपको यह पता लगाना होगा कि वर्तमान फ्रेम में कितनी विशेषताओं को सफलतापूर्वक ट्रैक किया गया था और फिर अगले फ्रेम को ट्रैक करने के लिए अतिरिक्त लोगों का पता लगाने का प्रयास किया गया। एक विकल्प प्रत्येक फ्रेम में सुविधाओं का पता लगाने के लिए होगा, और फिर वर्णनकर्ताओं की गणना करेगा और [इस पृष्ठ] पर कार्यों का उपयोग करके उन वर्णनकर्ताओं से मेल खाएं (http://opencv.itseez.com/modules/features2d/doc/features2d.html)। – Chris
यदि आपको अधिक जानकारी चाहिए, तो एक नया प्रश्न पूछना बेहतर होगा। – Chris