2011-08-12 2 views
3

Я сейчас пытаюсь выяснить способ Calcute размер данного объекта с KinectKinect объект измерения

, поскольку у меня есть следующие данные

углового поля зрения объектива расстояние и ширина в пикселях от разрешения 800 * 600

Я считаю, что это можно вычислить. У кого-нибудь есть математические навыки, чтобы немного помочь?

+0

Вы пытаетесь получить квадратную метку поперечного сечения объекта интереса, линейных размеров или попытаться восстановить объем? – Atreys

+0

линейные размеры на данный момент ... может быть позже я попробую тома – Killercode

ответ

2

С некоторыми trigonometry, его можно было бы приблизиться.

Если вы нарисуете right trangle ABC с камерой на одной из ног (A) и объектом на дальнем конце (край BC), где правый угол (C), то высота объекта равна будет высотой ноги BC. расстояние до пикселя может быть расстоянием между ногами AC или AB. Спецификации датчика Kinect будут регулировать это. Если вы достигнете расстояния до центра пикселя, то это будет AC. если у вас есть расстояния до углов пикселей, тогда расстояние будет AB.

С, представляющим углом в камере, что пиксель занимает, д расстояние гипотенузы под прямым углом и у является расстояние от дальней ноги (край ВС):

sin(A) = y/d

y = d sin(A)

y - длина пикселя, проецируемого в плоскость объекта. Вы вычисляете его, умножая грех ангела на расстояние до объекта.

Здесь я признаюсь, что не знаю API-интерфейса kinect и какой уровень детализации он предоставляет. Вы говорите, что у вас есть угол поля зрения. Вы можете предположить, что каждый пиксель вашей сетки 800x600 пикселей занимает равный угол поля зрения вашей камеры. Если да, то вы можете разбить это поле зрения на равные части для измерения линейного размера вашего объекта в каждом пикселе.

Вы также упомянули, что у вас есть расстояние до объекта. Я предполагал, что у вас есть карта расстояния для каждого пикселя сетки 800x600. Если это неверно, некоторые вычисления могут быть сделаны для приближения сетки расстояний для пикселей с объектом, представляющим интерес, если вы сделаете некоторые предположения относительно измеряемого объекта.

+0

Я думаю, что я не понял :( – Killercode

+0

Не могли бы вы подробно рассказать ... Я считаю, что это вопрос языка: P y - это длина пиксель, проецируемый в плоскость объекта? – Killercode

+0

Я предполагаю, что у меня это получилось ... ладно, давайте представим, что у меня есть kinect, закрепленный за поддержкой над таблицей, указывая на фиксированную высоту, и я бы хотел измерить поля над стол! Мне не нужна никакая теорема для него ... так что мне просто нужна вторая часть, которую вы объяснили относительно углового поля зрения справа – Killercode