Class CameraParameters
- Spazio dei nomi
- easyar
- Assembly
- EasyAR.Sense.dll
Parametri della fotocamera, inclusi dimensioni dell'immagine, lunghezza focale, punto principale, tipo di fotocamera e angolo di rotazione della fotocamera rispetto all'orientamento naturale del dispositivo.
public class CameraParameters : RefBase, IDisposable
- Ereditarietà
-
CameraParameters
- Implementa
- Membri ereditati
Costruttori
CameraParameters(Vec2I, Vec2F, Vec2F, CameraDeviceType, int)
public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parametri
imageSizefocalLengthprincipalPointcameraDeviceTypecameraOrientation
Metodi
Clone()
public CameraParameters Clone()
CloneObject()
protected override object CloneObject()
cameraDeviceType()
Tipo di dispositivo fotocamera. Default, posteriore o anteriore. I dispositivi desktop sono tutti di tipo default, i dispositivi mobili distinguono tra fotocamera posteriore e anteriore.
public virtual CameraDeviceType cameraDeviceType()
cameraModelType()
Modello fotocamera.
public virtual CameraModelType cameraModelType()
cameraOrientation()
Angolo di rotazione oraria necessario per visualizzare l'immagine della fotocamera nell'orientamento naturale del dispositivo. Intervallo [0, 360). Telefoni Android e alcuni tablet Android: 90 gradi. Occhiali Android e alcuni tablet Android: 0 gradi. Dispositivi iOS esistenti: tutti 90 gradi.
public virtual int cameraOrientation()
createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)
Crea CameraParameters con parametri intrinseci predefiniti. I parametri intrinseci predefiniti (lunghezza focale, punto principale) vengono calcolati automaticamente in base alle dimensioni dell'immagine, ma non sono particolarmente accurati.
public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parametri
imageSizecameraDeviceTypecameraOrientation
equalsTo(CameraParameters)
Determina se due set di parametri sono uguali.
public virtual bool equalsTo(CameraParameters other)
Parametri
other
focalLength()
Lunghezza focale. Distanza equivalente dal centro ottico della fotocamera al piano CCD divisa per la densità dei pixel per unità nelle direzioni larghezza e altezza. Unità: pixel.
public virtual Vec2F focalLength()
getResized(Vec2I)
Ottiene i parametri CameraParameters equivalenti dopo la modifica delle dimensioni dell'immagine della fotocamera.
public virtual CameraParameters getResized(Vec2I imageSize)
Parametri
imageSize
imageCoordinatesFromScreenCoordinates(float, int, bool, bool, Vec2F)
Trasforma dal sistema di coordinate schermo ([0, 1]^2) al sistema di coordinate immagine ([0, 1]^2). Entrambi i sistemi hanno x verso destra, y verso il basso, origine in alto a sinistra.
public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
Parametri
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipscreenCoordinates
imageHorizontalFlip(bool)
Calcola se l'immagine necessita di ribaltamento orizzontale. Durante il rendering, l'immagine viene prima ruotata e poi ribaltata. Quando il cameraDeviceType è fotocamera anteriore, il ribaltamento avviene automaticamente; su questo, è possibile applicare un ulteriore ribaltamento manuale passando manualHorizontalFlip.
public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)
Parametri
manualHorizontalFlip
imageOrientation(int)
Calcola l'angolo di rotazione oraria necessario per allineare l'immagine allo schermo. screenRotation è l'angolo di rotazione oraria dell'immagine dello schermo rispetto all'orientamento naturale. Per iOS: * UIInterfaceOrientationPortrait: screenRotation = 0 * UIInterfaceOrientationLandscapeRight: screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180 * UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Per Android: * Surface.ROTATION_0: screenRotation = 0 * Surface.ROTATION_90: screenRotation = 90 * Surface.ROTATION_180: screenRotation = 180 * Surface.ROTATION_270: screenRotation = 270
public virtual int imageOrientation(int screenRotation)
Parametri
screenRotation
imageProjection(float, int, bool, bool)
Calcola la matrice di proiezione ortografica per il rendering dell'immagine di sfondo della fotocamera, trasformando punti dal sistema di coordinate del rettangolo immagine ([-1, 1]^2) al sistema di coordinate di ritaglio ([-1, 1]^4) (inclusa la rotazione attorno all'asse z), mantenendo invariate le due dimensioni non definite. La forma della matrice è la stessa di OpenGL: matrice a destra moltiplicata per il vettore colonna delle coordinate omogenee del punto, non come Direct3D. I dati sono disposti in row-major, opposto al column-major di OpenGL. Le definizioni dei sistemi di coordinate di ritaglio e dispositivo normalizzato sono identiche alle impostazioni predefinite di OpenGL.
public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Parametri
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
principalPoint()
Punto principale. Coordinate pixel del punto in cui l'asse ottico principale interseca il piano CCD, rispetto all'angolo superiore sinistro dell'immagine. Unità: pixel.
public virtual Vec2F principalPoint()
projection(float, float, float, int, bool, bool)
Calcola la matrice di proiezione prospettica per il rendering di oggetti virtuali, trasformando punti dal sistema di coordinate della fotocamera al sistema di coordinate di ritaglio ([-1, 1]^4) (inclusa la rotazione attorno all'asse z). La forma della matrice è la stessa di OpenGL: matrice a destra moltiplicata per il vettore colonna delle coordinate omogenee del punto, non come Direct3D (matrice a sinistra). I dati sono disposti in row-major, opposto al column-major di OpenGL. Le definizioni dei sistemi di coordinate di ritaglio e dispositivo normalizzato sono identiche alle impostazioni predefinite di OpenGL.
public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Parametri
nearPlanefarPlaneviewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
screenCoordinatesFromImageCoordinates(float, int, bool, bool, Vec2F)
Trasforma dal sistema di coordinate immagine ([0, 1]^2) al sistema di coordinate schermo ([0, 1]^2). Entrambi i sistemi hanno x verso destra, y verso il basso, origine in alto a sinistra.
public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
Parametri
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipimageCoordinates
size()
Dimensioni dell'immagine.
public virtual Vec2I size()
tryCreateWithCustomIntrinsics(Vec2I, List<float>, CameraModelType, CameraDeviceType, int)
Crea CameraParameters con parametri intrinseci personalizzati. Richiede di specificare i parametri intrinseci (lunghezza focale, punto principale, coefficienti di distorsione) e il modello fotocamera. I modelli fotocamera supportati fanno riferimento a CameraModelType. Nota: utilizzare questa interfaccia con cautela; dati di input errati potrebbero causare la mancata creazione dell'oggetto, restituendo un valore vuoto.
public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parametri
imageSizecameraParamListcameraModelcameraDeviceTypecameraOrientation