Как установить стабильный маркер (сплошной круг на изображении). Что будет в том же положении на следующем кадре камеры?

Я собираюсь поместить маркеры на изображения, сделанные с выхода камеры, аналогично тому, что делает приложение Google Photoscan . Как я вижу, приложение Google Photoscan накладывает четыре сплошных круга на изображение, которое накладывается, а затем перемещает круг центра hallow по всем четырем сплошным кружкам и захватывает четыре изображения. Соедините их вместе, чтобы создать изображение высокого качества.

Скриншоты для справки (сплошные точки, которые вы можете видеть, всегда присутствуют даже на одном и том же цветовом фоне. Даже если вы переместите камеру и вернитесь в исходное положение, они будут отображаться в том же положении):

Точки Solid, которые вы можете видеть, всегда присутствуют даже на одном и том же цветовом фоне. Даже если вы перемещаете камеру вокруг и обратно в исходное положение, они будут отображаться в том же положении

Мне очень любопытно, как они могут стабилизировать эти четыре сплошных круга? Используют ли они какой-либо алгоритм оптического потока? Или какие-либо датчики движения? Я тестировал приложение на белом цвете или на том же цветовом фоне, что эти точки остаются стабильными.

Я реализовал эту функциональность с использованием алгоритма оптического потока (метод Lucas-Kanade в openCV). Но они нестабильны, когда я использую их на одном цветовом фоне или на белом цветовом фоне (в основном в алгоритме Lucas-Kanade, если он не находит функцию Он пытается сдвинуть эту точку). Вот скриншот для моей реализации:

Вы почти близки. Использование одиночного сенсора либо одного гироскопа, либо компаса не будет работать. Объединив результат, мы можем достичь вашего требования.

Ингредиент 1: Акселерометр

Акселерометры в мобильных телефонах используются для определения ориентации телефона. Гироскоп, или гироскоп для краткости, добавляет дополнительный размер информации, предоставляемой акселерометром, путем отслеживания вращения или поворота. Акселерометр измеряет линейное ускорение движения.

Ингредиент 2: гироскоп

На практике акселерометр будет измерять направленное движение устройства, но не сможет точно определить его боковую ориентацию или наклон в течение этого движения, если гироскоп не заполнит эту информацию.

Ингредиент 3: Цифровой компас

Цифровой компас, который обычно основан на датчике, называемом магнитометром, предоставляет мобильные телефоны с простой ориентацией относительно магнитного поля Земли. В результате ваш телефон всегда знает, какой путь на Север, чтобы он мог автоматически вращать ваши цифровые карты в зависимости от вашей физической ориентации.

С помощью акселерометра вы можете либо получить действительно «шумный» информационный вывод, реагирующий, либо вы можете получить «чистый» вывод, который вялый. Но когда вы комбинируете 3-осевой акселерометр с 3-осевым гироскопом, вы получаете выход, который одновременно чист и реагирует.

Возвращаясь к вашему вопросу, метод Lucas-Kanade в openCV-результате задерживается, вызывая сбои или датчики, не дающие точного результата с вашего устройства.

Intereting Posts
Добавить новые регистры на байт-код Dalvik Изменить правильную маржу в представлении программы? Где я могу найти готовые к использованию файлы JAR Elcipse Paho Android / Client JAR? Разработка двух приложений для Android и связь между двумя Можно ли повторно использовать намерение? Может ли TCriticalSection.Acquire безопасно вызываться более одного раза по потоку? Отслеживание пользовательских событий в Google Analytics в приложениях для Android Как я могу видеть длинные тексты / msg в logcat? Устройство отключается в случайном порядке (и появляется несколько раз в автономном режиме) в Eclipse – исправления? 23.2.0 векторный векторный фон в 4.X NoSQL DB для Android, кроме MongoDB и CouchDB? Изменение значений селектора xml из java-кода Android SSLServerSocket вызывает увеличение собственной памяти в приложении, OOM Использование MediaPlayer для воспроизведения AMR-файла, созданного MediaRecorder, с ошибкой muri Импорт проекта Android Studio из git в Android Studio (Gradle)