Проблемы с пониманием ориентации изображения в SwiftIOS

Программируем под IOS
Ответить
Anonymous
 Проблемы с пониманием ориентации изображения в Swift

Сообщение Anonymous »

Я новичок в Swift (SwiftUI) и создаю простое приложение для распознавания лиц и карт с помощью Vision. По сути, это просто слой предварительного просмотра камеры, и при обнаружении лица/карты он обрезает изображение и отображает его в представлении. У меня возникли проблемы с пониманием того, как работает ориентация изображения.
Я так понимаю. Поправьте меня, если я ошибаюсь:
На устройствах iOS, когда мы держим камеру в портретной ориентации, собственный датчик по-прежнему захватывает изображение в альбомной ориентации слева (поэтому нам приходится повернуть изображение на 90 градусов вправо для заданной ориентации) для задней камеры. Для передней камеры она по-прежнему захватывает в альбомной ориентации слева, но, кроме того, она также зеркально отображается.
Предположим, это образец изображения из Интернета.
Изображение

Я попробовал два подхода:
I-) В VNImageRequestHandler я установил ориентация .right, чтобы захваченные буферы вращались вправо, но это не так. Я думал, это сработает.
Изображение

II-) В конфигурации камеры я установил для VideoOrientation значение AVCaptureVideoOrientation.portrait, это исправило ориентацию захвата буферов.
Теперь, насколько я понимаю, если я установил ориентация на .up(по умолчанию) в VNImageRequestHandler, она должна работать, верно? Захваченный буфер имел правильную ориентацию, но обрезка применялась неправильно.
Изображение

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

Почему работает .downMirrored (перевернутый и горизонтальное переворот), а не первый подход?

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-in-swift
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»