Table of Contents

Class CameraParameters

Spazio dei nomi
easyar
Assembly
EasyAR.Sense.dll

camera parameters, inclusi dimensione dell'image, focal length, principal point, tipo di camera e angolo di rotazione della camera rispetto alla device natural orientation.

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

imageSize
focalLength
principalPoint
cameraDeviceType
cameraOrientation

Metodi

Clone()

public CameraParameters Clone()

cameraDeviceType()

Tipo di camera device. Default camera, back camera o front camera. I dispositivi desktop sono tutti default camera, mentre i dispositivi mobile distinguono back camera e front camera.

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Camera model.

public virtual CameraModelType cameraModelType()

cameraOrientation()

L'angolo di rotazione in senso orario richiesto quando si visualizza la camera image nella device natural orientation. L'intervallo e [0, 360). Telefoni Android e alcuni tablet Android sono a 90 gradi. Occhiali Android e alcuni tablet Android sono a 0 gradi. I dispositivi iOS esistenti sono tutti a 90 gradi.

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

Crea CameraParameters con default camera intrinsics. I default camera intrinsics (focal length e principal point) sono calcolati automaticamente in base alla dimensione dell'image, ma non sono particolarmente accurati.

public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parametri

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

Determina se due set di parameters sono uguali.

public virtual bool equalsTo(CameraParameters other)

Parametri

other

focalLength()

Focal length. La distanza dall'optical center equivalente della camera al piano CCD divisa per la unit pixel density nelle direzioni di larghezza e altezza. L'unita e in pixel.

public virtual Vec2F focalLength()

getResized(Vec2I)

Ottiene CameraParameters equivalenti dopo la modifica della dimensione della camera image.

public virtual CameraParameters getResized(Vec2I imageSize)

Parametri

imageSize

imageCoordinatesFromScreenCoordinates(float, int, bool, bool, Vec2F)

Trasforma dallo screen coordinate system ([0, 1]^2) all'image coordinate system ([0, 1]^2). In entrambi i coordinate system, x punta a destra, y punta verso il basso e l'origin e nell'angolo superiore sinistro.

public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)

Parametri

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
screenCoordinates

imageHorizontalFlip(bool)

Calcola se l'image necessita di horizontal flipping. Durante il rendering dell'image, viene applicata prima la rotazione e poi il flipping. Quando cameraDeviceType e front camera, il flipping viene eseguito automaticamente; manualHorizontalFlip puo essere passato per applicare un ulteriore flip manuale.

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parametri

manualHorizontalFlip

imageOrientation(int)

Calcola l'angolo in senso orario di cui l'image deve ruotare rispetto allo screen per allinearsi allo screen. screenRotation e l'angolo di rotazione in senso orario della screen image rispetto alla natural orientation. 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 orthographic projection matrix necessaria per renderizzare la camera background image, trasformando i punti nell'image rectangle coordinate system ([-1, 1]^2) nel clip coordinate system ([-1, 1]^4), inclusa la rotazione attorno all'asse z, mentre le due dimensioni non definite restano invariate. La orthographic projection matrix ha la stessa forma di OpenGL: la matrix viene moltiplicata a destra per le coordinate omogenee del punto, non a sinistra come in Direct3D. I dati sono disposti in ordine row-major, opposto al column-major di OpenGL. Le definizioni di clip coordinate system e normalized device coordinate system sono uguali ai default di OpenGL.

public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)

Parametri

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Principal point. Le coordinate pixel dal punto di intersezione del principal optical axis della camera sul piano CCD all'angolo superiore sinistro dell'image. L'unita e in pixel.

public virtual Vec2F principalPoint()

projection(float, float, float, int, bool, bool)

Calcola la perspective projection matrix necessaria per renderizzare virtual objects, trasformando i punti nel camera coordinate system nel clip coordinate system ([-1, 1]^4), inclusa la rotazione attorno all'asse z. La perspective projection matrix ha la stessa forma di OpenGL: la matrix viene moltiplicata a destra per il column vector delle coordinate omogenee del punto, non a sinistra come in Direct3D. I dati sono disposti in ordine row-major, opposto al column-major di OpenGL. Le definizioni di clip coordinate system e normalized device coordinate system sono uguali ai default di OpenGL.

public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)

Parametri

nearPlane
farPlane
viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

screenCoordinatesFromImageCoordinates(float, int, bool, bool, Vec2F)

Trasforma dall'image coordinate system ([0, 1]^2) allo screen coordinate system ([0, 1]^2). In entrambi i coordinate system, x punta a destra, y punta verso il basso e l'origin e nell'angolo superiore sinistro.

public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)

Parametri

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
imageCoordinates

size()

Dimensione dell'image.

public virtual Vec2I size()

tryCreateWithCustomIntrinsics(Vec2I, List<float>, CameraModelType, CameraDeviceType, int)

Crea CameraParameters con custom camera intrinsics. Devono essere specificati camera intrinsics (focal length, principal point, distortion coefficients) e camera model. Per i camera model supportati, fare riferimento a CameraModelType. Nota: usare questa interfaccia con cautela. Dati di input errati possono causare il fallimento della creazione dell'oggetto e restituire empty.

public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parametri

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation