2011-05-03 9 views
5

मैं समझता हूँ और OpenCV उपयोग करने के लिए कोशिश कर रहा हूँ। मैं जानना चाहता था कि दो फ्रेम के बीच कोण को ढूंढना और मापना संभव है या नहीं।ओपनसीवी - दो फ्रेम के बीच कोण का पता लगाने और मापने के लिए कैसे?

मैं समझाता: कैम को ठीक करने और फ्रेम केंद्र के चारों ओर बारी बारी से कर सकते हैं और नहीं ले जाया जाएगा। अभी के लिए मैं मैन्युअल रूप से घूमने में कामयाब रहा और मैं फ्रेम की तुलना करने और कोण को वापस करने में सक्षम होना चाहता हूं। उदाहरण के लिए:

double getRotation(Image img1, Image img2) { 
    //Compare the frames 

    //Return the value 
} 

और फिर मैं उस कोण के बाद घूमता हूं।

उत्तर

3

आप, स्थिर वस्तुओं का पता लगाने के ई पा रहे हैं। जी। पृष्ठभूमि, तख्ते पर तो आप पृष्ठभूमि पर good_features_to_track (cvGoodFeaturesToTrack) कहा जाता अंक खोजने के लिए और इस (cvCalcOpticalFlowPyrLK) optical_flow का उपयोग कर अंक ट्रैक कर सकते हैं।

तो रोटेशन केवल 'xy' मैदान पर है आप cvGetAffineTransform का उपयोग कर रोटेशन का पता लगाने में सक्षम हैं।

चूंकि केवल रोटेशन की अनुमति है (कोई अनुवाद और स्केलिंग नहीं) cvGetAffineTransform द्वारा प्राप्त रूपांतरण मैट्रिक्स का उपयोग करके घूर्णन के कोण को निर्धारित करना मुश्किल नहीं है। यही कारण है कि मैट्रिक्स लगता है कि (wikipedia देखें):

enter image description here

कहाँ \ थीटा रोटेशन कोण

+0

त्वरित जवाब के लिए धन्यवाद! मैं कोशिश करूँगा और आपको पोस्ट रखूंगा। सिर्फ यह जानने के लिए, अगर कोई पृष्ठभूमि नहीं है, तो मेरा मतलब है, अगर मैं बारकलर (मूर) फिल्मा रहा हूं, तो क्या यह भी काम कर सकता है? – Julio

0

खैर यह बहुत मुश्किल है, बस एक सरल समाधान फ्रेम के hough लाइनों को खोजने के लिए हो सकता है हो सकता है । निस्संदेह आपको यह निर्धारित करने की आवश्यकता होगी कि सर्वोत्तम और स्थिर रेखाएं हैं, जहां आप उपलब्ध होने के बाद दो फ्रेम के बीच ट्रैक कर सकते हैं, फिर आप दो फ्रेम के बीच कोण पा सकते हैं। कोणों को खोजने के लिए एंड्री ने सुझाव दिया है कि साथ ही प्रयोग योग्य भी होना चाहिए।