Как рассчитать масштаб реального объекта с помощью Raycast в ARcore mobile - PullRequest
0 голосов
/ 09 апреля 2019

enter image description here

Я хочу знать высоту размера реального объекта

У меня есть информация

  1. У меня есть снимок с размером 1620 * 2220 (ширина * высота [пиксель])

  2. Iзнать, где находится реальный объект, который я хочу измерить на снимке.Это значение известно как значение координаты

    Если вы обратитесь к этому вопросу, вы можете получить приблизительное представление о том, как я знаю значения координат.

    Комусоздать ограничивающую рамку в текстуре в Unity

  3. Я могу снимать Raycast из значения координат экрана, и я могу найти положение удара Якоря, SurfcaeARCore.

  4. Я могу получить расстояние от камеры до точки, где она коснулась поверхности.

  5. Я могу получить камеруугол, потому что я использую ARCore API

Если вы посмотрите на картинку

Я знаю длину красных линий и точку координат метки xи я хочу узнать высоту реального объекта на зеленой линии.

Я получаю нижнюю и верхнюю координаты из моментального снимка и примерно знаю размер реального объекта.

Теперь я использую ARcore, снимаю Raycast с точки ниже и помещаюОбъект находится в том месте, где он ударился о поверхность.

Однако, чем ближе или больше расстояние экрана и попадание Raycast, тем больше необходимо изменить размер объекта.

I 'Я видел это раньше, но я не применял это

https://blogs.unity3d.com/kr/2017/11/16/dealing-with-scale-in-ar/

Как я могу получить реальный размер объекта только с вышеуказанной информацией?

Обновление 1

Я просто вычисляю разницу между точками вверх и вниз в снимке и преобразую их в см.

Например, если верхняя координата y равна 300, а нижняя координата равна 100 y, я делаю 300 - 100 и преобразовываю 200 пикселей в см.

Но я думаю, что есть и большая проблема.

...