После того, как увидел this video, я думаю, что вы должны действовать следующим образом:
- белые пиксели являются Farest возможное расстояние, что (для Kinect SDK 1.x не в режиме, близком, т.е. режим по умолчанию) равный 4 метрам;
- черные пиксели могут быть неизвестными, а также самое близкое возможное значение, которое (для Kinect SDK 1.x в режиме по умолчанию) равно 0,8 метра.
Таким образом, это означает, что если я правильно догадался, что эти видеоролики записаны в режиме по умолчанию и предполагается, что вы конвертируете каждый кадр в полутоновое изображение (каждое значение пикселя варьируется от 0 до 255), вы должны используют следующую формулу:
RealDepth (в метрах) = (3.2 * grayValue/255) + 0,8
Таким образом, если grayValue
равно 0 (черный), а затем realDepth
составляет 0,8 метра , Если grayValue
равно 255 (белый), то realDepth
составляет 4 метра.
Если вы хотите realDepth
в миллиметрах, просто разделить его на 1000.
Отметим также, что некоторые черные пиксели могут также представлять неизвестное значение. Поэтому, если realDepth
равно 0,8, вы не можете быть уверены, что это правильное значение, или если оно на самом деле неизвестно.
Какой SDK вы используете? Microsoft SDK? Если да, то какая версия? 1.x ([Kinect для Xbox360] (https://upload.wikimedia.org/wikipedia/commons/f/fe/KinectSensor.png)) или 2.x ([Kinect для Xbox One] (http: // compass .xbox.com/активы/3d/37/3d377852-0f21-4074-a3c2-35f418170848.jpg? п = chandler_xboxone_hardware_960x540_01.jpg))? –
Я использую Kinect для Windows SDK v1.7 – faimer
Можете ли вы добавить фрагмент кода, используемого для записи видео глубины? –