Отслеживание QR-кода

Прежде чем приступить к работе, рекомендуем ознакомиться с обзорной статьей об отслеживании QR-кода , которая содержит обзор, таблицу поддержки устройств и рекомендации.

Обнаружение QR-кодов

Добавление возможности веб-камеры

Вам потребуется добавить в манифест возможность webcam обнаружения QR-кодов. Эта возможность необходима, так как данные в обнаруженных кодах в среде пользователя могут содержать конфиденциальную информацию.

Разрешение можно запросить, вызвав :QRCodeWatcher.RequestAccessAsync()

C#:

await QRCodeWatcher.RequestAccessAsync();

Перед созданием объекта QRCodeWatcher необходимо запросить разрешение.

Хотя для обнаружения QR-кода требуется webcam возможность, обнаружение выполняется с помощью камер отслеживания устройства. Это обеспечивает более широкое обнаружение FOV и лучшее время работы батареи по сравнению с обнаружением с помощью фото- и видео камеры устройства.

Вы можете использовать API обнаружения QR-кода в Unity без импорта MRTK, установив пакет NuGet с помощью NuGet для Unity. Если вы хотите почувствовать, как это работает, скачайте пример приложения Unity. Пример приложения содержит примеры отображения голографического квадрата по QR-кодам и связанным данным, таким как GUID, физический размер, метка времени и декодированные данные.

Использование OpenXR

При использовании подключаемого модуля OpenXR извлеките SpatialGraphNodeId из API QR-кода и используйте Microsoft.MixedReality.OpenXR.SpatialGraphNode API для поиска QR-кода.

Для справки у нас есть пример проекта отслеживания QR на сайте GitHub с более подробным описанием SpatialGraphNode использования API.

Получение системы координат для QR-кода

Каждый обнаруженный QR-код предоставляет систему пространственных координат , выровненную с QR-кодом в левом верхнем углу квадрата быстрого обнаружения в левом верхнем углу:

Система координат QR-кода

При преобразовании в координаты Unity ось Z указывает на бумагу и является левой рукой.

См. также статью