Захват изображения с камеры телефона для панорамы в Unity
Как сделать снимок, чтобы создать панорамное изображение, используя камеру телефона (не камеру единства)? Другими словами, я пытаюсь воспроизвести приложение камеры на телефоне с помощью Unity. Я знаю несколько способов, как сшивать изображения после того, как они были захвачены, но я не знаю, это процесс "захвата", то есть, как определить, вращается ли телефон слева направо или вправо - левый или вообще не двигается? Должен ли я использовать показания гироскопа? Если да, то как обстоят дела со смещением ИДУ? Кроме того, какой подход используется большинством современных телефонов, поддерживающих функцию панорамы?
1 ответ
Телефоны используют сенсорный синтез и иногда также комбинируют зрение, чтобы определить, как выполнить сшивание в отношении движения. Наиболее распространенным является использование фильтра Калмана, когда у вас есть несколько источников информации в разных измерениях, которые можно объединить в нужную переменную. В основном, вы ищете ориентацию устройства https://developer.android.com/reference/android/hardware/Sensor в Android, например. В нем используются магнитометр, акселерометр и гироскоп 1. Магнитометр для оценки севера Земли 2. Акселерометр для оценки направления гравитации 3. Гироскоп для расчета движения в динамическое время, акселерометр и магнитометр будут препятствовать дрейфу гироскопа, в то время как гироскоп помогает давать достоверные результаты. в то время как устройство в движении и акселерометр оценки направления силы тяжести не являются точными из-за линейного ускорения. Я могу продолжать в деталях, но это не так важно, как это уже реализовано для вас. Это даст вам вектор вращения относительно земной системы координат. После того, как вы сделаете нужные изображения или в режиме реального времени, вы должны усовершенствовать результаты, используя некоторое зрение, поскольку точность датчика даст вам по крайней мере 2-3 степени погрешности.
Надеюсь, это поможет, удачи в проекте!