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
imageSizefocalLengthprincipalPointcameraDeviceTypecameraOrientation
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
imageSizecameraDeviceTypecameraOrientation
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
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipscreenCoordinates
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
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
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
nearPlanefarPlaneviewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
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
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipimageCoordinates
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
imageSizecameraParamListcameraModelcameraDeviceTypecameraOrientation