मैं नए किनेक्ट एसडीके v1.0.3.190 के साथ खेल रहा हूं। (स्टैक ओवरफ्लो में अन्य संबंधित प्रश्न किनेक्ट के पिछले एसडीके पर हैं) मुझे किनेक्ट से गहराई और रंग धाराएं मिलती हैं। चूंकि गहराई और आरजीबी धाराओं को विभिन्न सेंसर के साथ पकड़ा जाता है, इसलिए नीचे दिखाए जा सकने वाले दो फ्रेमों के बीच एक गलत संरेखण होता है।किनेक्ट गहराई और छवि फ्रेम्स संरेखण
केवल आरजीबी
केवल गहराई
गहराई & आरजीबी
मैं उन्हें संरेखित करने की आवश्यकता है और वहाँ MapDepthToColorImagePoint वास्तव में इस उद्देश्य के लिए नामित किया गया एक समारोह है। हालांकि यह काम नहीं लग रहा है। यहाँ एक समान रूप से मिश्रित (गहराई और मैप किए गए रंग) परिणाम है जिसके नीचे निम्न कोड
Parallel.For(0, this.depthFrameData.Length, i =>
{
int depthVal = this.depthFrameData[i] >> 3;
ColorImagePoint point = this.kinectSensor.MapDepthToColorImagePoint(DepthImageFormat.Resolution640x480Fps30, i/640, i % 640, (short)depthVal, ColorImageFormat.RgbResolution640x480Fps30);
int baseIndex = Math.Max(0, Math.Min(this.videoBitmapData.Length - 4, (point.Y * 640 + point.X) * 4));
this.mappedBitmapData[baseIndex] = (byte)((this.videoBitmapData[baseIndex]));
this.mappedBitmapData[baseIndex + 1] = (byte)((this.videoBitmapData[baseIndex + 1]));
this.mappedBitmapData[baseIndex + 2] = (byte)((this.videoBitmapData[baseIndex + 2]));
});
जहां पैरामीटर, संकल्प, सरणी आकार के
depthFrameData -> raw depth data (short array)
videoBitmapData -> raw image data (byte array)
mappedBitmapData -> expected result data (byte array)
आदेश सही हैं के साथ बनाया जाता है (डबल चेक) ।
कोड का परिणाम है:
मिसलिग्न्मेंट जारी है! इससे भी बदतर यह है कि, MapDepthToColorImagePoint का उपयोग करने के बाद परिणाम छवि मूल छवि के साथ बिल्कुल वही है।
मेरी सराहना करने के लिए कोई मेरी मदद कर सकता है या कम से कम मुझे बता सकता है कि MapDepthToColorImagePoint क्या है (मान लीजिए कि मैंने इसकी कार्यक्षमता को गलत समझा है)?