2017-09-25 11 views
5

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

यह जांचना चाहता था कि आईपी एक्स सेंसर से कच्चे गहराई के मानचित्र को ऐप में कच्चे गहराई का नक्शा प्राप्त करने के लिए कोई एपीआई/एसडीके है या नहीं?

मेरी समझ से गहराई की गणना अनुमानित पैटर्न के आधार पर की जाती है। इसका उपयोग सेंसर के सामने किसी ऑब्जेक्ट की गहराई से प्रोफ़ाइल प्राप्त करने के लिए किया जा सकता है। (वस्तु के बनावट पर निर्भर हो सकता है।)

उत्तर

7

आपको कम से कम आईओएस 11.1 एसडीके की आवश्यकता होगी Xcode 9.1 (दोनों इस बीटा के रूप में बीटा में)। इसी के साथ, builtInTrueDepthCamera में से एक हो जाता है camera types आप एक पर कब्जा डिवाइस का चयन करने के लिए उपयोग करें:

let device = AVCaptureDevice.default(.builtInTrueDepthCamera, for: .video, position: .front) 

तो फिर तुम TrueDepth कैमरा डिवाइस के साथ एक AVCaptureSession स्थापित करने के लिए पर जा सकते हैं, और कहा कि कब्जा सत्र का उपयोग कर सकते गहराई से जानकारी पर कब्जा करने के आप iPhone 7 प्लस और 8 प्लस पर वापस दोहरी कैमरा के साथ कर सकते हैं बहुत पसंद:

  • AVCapturePhotoOutput.isDepthDataDeliveryEnabled साथ तस्वीरों के लिए गहराई पर कब्जा चालू है, तो AVCapturePhotoSettings.isDepthDataDeliveryEnabled साथ चित्र लें। ऑब्जेक्ट से depthData को आप कैप्चर करने के बाद प्राप्त कर सकते हैं, या embedsDepthDataInPhoto चालू कर सकते हैं यदि आप बस आग लगाना चाहते हैं और भूल जाते हैं (और बाद में कैप्चर की गई छवि फ़ाइल से डेटा पढ़ते हैं)।

  • AVCaptureDepthDataOutput के साथ गहराई के नक्शे की एक लाइव फ़ीड प्राप्त करें। वह वीडियो डेटा आउटपुट की तरह है; सीधे मूवी फ़ाइल में रिकॉर्ड करने की बजाय, यह आपके प्रतिनिधि को छवि का एक समय अनुक्रम (या इस मामले में, गहराई) बफर देता है। यदि आप एक ही समय में वीडियो कैप्चर कर रहे हैं, तो AVCaptureDataOutputSynchronizer यह सुनिश्चित करने के लिए आसान हो सकता है कि आप समेकित गहराई के नक्शे और रंग फ़्रेम एक साथ प्राप्त करें।

के रूप में एप्पल के Device Compatibility प्रलेखन नोट, आप builtInTrueDepthCamera डिवाइस का चयन करने के लिए इन गहराई पर कब्जा विकल्पों में से किसी को पाने के लिए की जरूरत है। यदि आप फ्रंट-फेस builtInWideAngleCamera का चयन करते हैं, तो यह केवल फोटो और वीडियो को कैप्चर करने वाले किसी भी अन्य सेल्फी कैमरे की तरह बन जाता है।


बस पर जोर देना: देखने का एक एपीआई बिंदु से, iPhone एक्स पर आगे की तरफ TrueDepth कैमरा के साथ गहराई पर कब्जा करने बैक का सामना करना पड़ iPhone 7 प्लस और 8 प्लस पर दोहरी कैमरों के साथ गहराई पर कब्जा करने की तरह एक बहुत कुछ है । तो यदि आप इस गहराई से कैप्चर व्यवसाय सामान्य रूप से कैसे काम करते हैं, और कैप्चर की गई गहराई की जानकारी के साथ आप क्या कर सकते हैं, तो WWDC17 Session 507: Capturing Depth in iPhone Photography बातचीत देखें।

+0

मैंने आपके AVCaptureDevice को इंगित करते हुए सेट अप किया है, और जब मैं अपने AVCapturePhotoOutput ऑब्जेक्ट पर गहराई से डेटा डिलीवरी सक्षम करने का प्रयास करता हूं, तो मुझे एक त्रुटि मिलती है "*** बिना अपवाद अपवाद के कारण ऐप को समाप्त करना" एनएसआईएनवालिडअर्ग्यूमेंट एक्सेप्शन ', कारण:' * ** - [AVCapturePhotoOutput setDepthDataDeliveryEnabled:] गहराई डेटा वितरण वर्तमान कॉन्फ़िगरेशन में समर्थित नहीं है। क्या आप जानते हैं कि इसका कारण क्या हो सकता है? आईओएस के लिए विकसित होने के बाद से यह काफी समय हो गया है, इसलिए यह संभव/संभावित है कि मैं कुछ स्पष्ट कर रहा हूं। – stranger

+0

@rickster सामने वाले कैमरे द्वारा वापस किया गया गहराई डेटा, क्या 8-बिट डेटा/प्रति पिक्सेल से अधिक वापस करना संभव है? – Vickram

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