Probleme beim Verständnis von ImageOrientation in SwiftIOS

Programmierung für iOS
Anonymous
 Probleme beim Verständnis von ImageOrientation in Swift

Post by Anonymous »

Ich bin ziemlich neu in Swift (SwiftUI) und erstelle mit Vision eine einfache Gesichts- und Kartenerkennungs-App. Im Grunde handelt es sich lediglich um eine Kameravorschauebene, die bei Gesichts-/Kartenerkennung das Bild zuschneidet und in der Ansicht anzeigt. Ich habe einige Probleme zu verstehen, wie die Bildausrichtung funktioniert.
Das ist mein Verständnis, korrigieren Sie mich, wenn ich falsch liege:
Wenn wir bei iOS-Geräten die Kamera im Hochformat halten, nimmt der native Sensor das Bild immer noch im Querformat nach links auf (wir müssen das Bild also für die beabsichtigte Ausrichtung um 90 Grad nach rechts drehen) für die Rückkamera. Bei der Frontkamera wird immer noch im Querformat links aufgenommen, aber zusätzlich wird es auch gespiegelt.
Angenommen, dieses Beispielbild stammt aus dem Internet
Image

Ich habe zwei Ansätze ausprobiert:
I-) Im VNImageRequestHandler habe ich die Ausrichtung auf eingestellt .right, damit sich die erfassten Puffer nach rechts drehen würden, aber das taten sie nicht. Ich dachte, das würde funktionieren.
Image

II-) In der Kamerakonfiguration habe ich videoOrientation auf AVCaptureVideoOrientation.portrait gesetzt, dadurch wurde die Aufnahmeausrichtung der Puffer korrigiert.
Nach meinem Verständnis, wenn ich die Ausrichtung auf setze .up(Standard) in VNImageRequestHandler, es sollte funktionieren, oder? Der erfasste Puffer hatte die richtige Ausrichtung, aber der Zuschnitt wurde nicht richtig angewendet.
Image

Aber als ich die Ausrichtung im Anforderungshandler auf .downMirrored gesetzt habe, funktionierte es korrekt, die Puffer hatten die richtige Ausrichtung und der Zuschnitt war auch gut.
Image

Warum funktioniert .downMirrored (auf den Kopf gestellt und horizontal gedreht) und nicht der erste Ansatz?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post