2016-04-01 3 views
6

का उपयोग कर रहा कैमरे का उपयोग करना एक वस्तु के आयाम प्राप्त करने के लिए समाधान खोजने के लिए चाहते हैं, अच्छी तरह से यह डुप्लिकेट एकएक वस्तु का आयाम (ऊंचाई, चौड़ाई) कैमरा

How to measure height, width and distance of object using camera?

लेकिन समाधान की तरह लगता है मेरी मदद नहीं करता है। ऊपर दिए गए लिंक से मुझे दूरी (Measure Distance) पता लगाने के लिए कुछ विचार आया।

क्या कोई मुझे सुझाव दे सकता है कि मुझे चौड़ाई और वस्तु की ऊंचाई कैसे प्राप्त होनी चाहिए। सरल गणित या कोई विचार वास्तव में सहायक होगा।

ओपनसीवी का उपयोग कर उपर्युक्त समाधान प्राप्त करने की कोई संभावना है। Measure Height and Width

मैं अब तक क्या प्रयास किया है:

enter image description here

मान लीजिए हम निश्चित दूरी मान, हम Angle of elevation

tan(α/2) = (l/2)/d, 

hence 

α = 2*atan(l/2d) 

गणना कर सकते हैं लेकिन फिर भी हम नहीं जानते एल का मूल्य (वस्तु की लंबाई)

व्यू कोण खोजने का एक और तरीका:

double thetaV = Math.toRadians(camera.getParameters().getVerticalViewAngle()); 
    double thetaH = Math.toRadians(camera.getParameters().getHorizontalViewAngle()); 

काम नहीं कर रहा है !!

उत्तर

4

लेंस के वास्तविक भौतिकी उदाहरण के लिए this website of Georgia State University पर समझाया गया है।

इस उदाहरण जो बताते हैं कि कैसे आप छवि का आकार से वस्तु के आकार पता लगाने के लिए या तो रेखीय आवर्धन या फोकल लंबाई संबंधों का उपयोग कर सकते देखें:

Nice lens illustration with equations

विशेष रूप से, -i/h' = o/h, और इस संबंध o/h सच है सभी समान त्रिकोणों के लिए (यानी, आकार 2h की दूरी 2o पर एक ही आकार h' चित्र पर है)। तो जैसा कि आप देख सकते हैं, पूर्ण समीकरण के मामले में, आप o और किसी ऑब्जेक्ट के आकार h दोनों को नहीं जानते हैं - हालांकि कोई आपको दूसरा देगा।

दूसरी ओर, एक ही दूरी o पर दो वस्तुओं उनके आकार h1' और h2' छवि पर वास्तविक जीवन h1 और h2 में उनके आकार के अनुपात में, h1'/h1 = M = h2'/h2 के बाद देखेंगे।

इसलिए अगर आप एक वस्तु दोनों o और h के लिए पता है, तुम M पता है, इस प्रकार फिल्म पर एक वस्तु के आकार को जानने आप इसकी दूरी से इसके आकार घटा है और इसके विपरीत कर सकते हैं।

-i/h' मान स्वाभाविक रूप से अधिकतम h' के लिए व्यक्त किया गया है। यदि किसी ऑब्जेक्ट का आकार बिल्कुल छवि भरता है, तो यह दृश्य के क्षेत्र को भरता है, फिर इसकी दूरी का अनुपात tan(α/2) = (l/2)/d है (ध्यान दें कि नीचे दी गई छवि के सम्मेलनों में d = o और l = 2 * h)।

enter image description here

यह α क्या आप अपने उदाहरण में थीटा नाम है। अब, छवि आकार से आप छवि को किस कोण के नीचे देख सकते हैं - यानी, आकार l क्या होगा यदि छवि d पर हो। वहां से, आप वस्तु के आकार को इसकी दूरी से घटा सकते हैं और इसके विपरीत।

एल्गोरिथ्म कदम:

  1. प्राप्त अनुपात r = size of object in image (in px)/total size of image (in px)
    अक्ष के साथ ऐसा करें जिसके लिए आप जानते हैं या वास्तविक ऑब्जेक्ट आकार प्राप्त करने की योजना बना रहे हैं।
  2. आधा है कि कोण की स्पर्शज्या से देख सकते हैं और कोण गुणा r की संगत फ़ील्ड मिल
    r *= tan(camera.getParameters().getXXXXViewAngle()/2)
  3. r अब आधा कोण है जिसके तहत आप वस्तु को देखने के स्पर्श रेखा होती है, इसलिए निम्नलिखित संबंधों सत्य हैं: r = (l/2)/d = h/o (संबंधित ड्राइंग के नोटेशन के साथ)।
    • आप वस्तु से दूरी d जानते हैं, तो इसके आकार l = 2 * r * d
    • है आप वस्तु के आकार l जानते हैं तो उसे दूरी पर है d = l/(2 * r)

यह काम करता है है ऑब्जेक्ट टोपी के लिए वास्तव में कैमरे द्वारा इंगित किया जाता है, अगर वे केंद्रित नहीं हैं तो गणित बंद हो सकते हैं।

संबंधित मुद्दे