Table of Contents

Class CameraParameters

Espacio de nombres
easyar
Ensayo
EasyAR.Sense.dll

camera parameters, incluidos el tamano de la image, focal length, principal point, tipo de camera y angulo de rotacion de la camera relativo a la device natural orientation.

public class CameraParameters : RefBase, IDisposable
Herencia
CameraParameters
Implementa
Miembros heredados

Constructores

CameraParameters(Vec2I, Vec2F, Vec2F, CameraDeviceType, int)

public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parámetros

imageSize
focalLength
principalPoint
cameraDeviceType
cameraOrientation

Métodos

Clone()

public CameraParameters Clone()

cameraDeviceType()

Tipo de camera device. Default camera, back camera o front camera. Los dispositivos desktop son todos default camera, mientras que los dispositivos moviles distinguen back camera y front camera.

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Camera model.

public virtual CameraModelType cameraModelType()

cameraOrientation()

El angulo de rotacion en sentido horario necesario al mostrar la camera image en la device natural orientation. El rango es [0, 360). Los telefonos Android y algunas tabletas Android son 90 grados. Las gafas Android y algunas tabletas Android son 0 grados. Los dispositivos iOS existentes son todos 90 grados.

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

Crea CameraParameters con default camera intrinsics. Los default camera intrinsics (focal length y principal point) se calculan automaticamente segun el tamano de la image, pero no son especialmente precisos.

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

Parámetros

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

Determina si dos conjuntos de parameters son iguales.

public virtual bool equalsTo(CameraParameters other)

Parámetros

other

focalLength()

Focal length. La distancia desde el optical center equivalente de la camera hasta el plano CCD dividida por la unit pixel density en las direcciones de anchura y altura. La unidad son pixeles.

public virtual Vec2F focalLength()

getResized(Vec2I)

Obtiene CameraParameters equivalentes despues de que cambie el tamano de la camera image.

public virtual CameraParameters getResized(Vec2I imageSize)

Parámetros

imageSize

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

Transforma desde el screen coordinate system ([0, 1]^2) al image coordinate system ([0, 1]^2). En ambos coordinate system, x apunta a la derecha, y apunta hacia abajo y el origin esta en la esquina superior izquierda.

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

Parámetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
screenCoordinates

imageHorizontalFlip(bool)

Calcula si la image necesita horizontal flipping. Durante el renderizado de la image, primero se aplica la rotacion y luego el flipping. Cuando cameraDeviceType es front camera, el flipping se realiza automaticamente; manualHorizontalFlip se puede pasar para aplicar un flipping manual adicional.

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parámetros

manualHorizontalFlip

imageOrientation(int)

Calcula el angulo horario que la image debe rotar respecto a la screen para alinearse con la screen. screenRotation es el angulo de rotacion horario de la screen image relativo a la natural orientation. Para iOS: * UIInterfaceOrientationPortrait: screenRotation = 0 * UIInterfaceOrientationLandscapeRight: screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180 * UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Para 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)

Parámetros

screenRotation

imageProjection(float, int, bool, bool)

Calcula la orthographic projection matrix necesaria para renderizar la camera background image, transformando puntos del image rectangle coordinate system ([-1, 1]^2) al clip coordinate system ([-1, 1]^4), incluida la rotacion alrededor del eje z, mientras que las dos dimensiones no definidas permanecen sin cambios. La orthographic projection matrix tiene la misma forma que OpenGL: la matrix multiplica por la derecha a las coordenadas homogeneas del punto, no por la izquierda como en Direct3D. Los datos estan en orden row-major, opuesto al column-major de OpenGL. Las definiciones del clip coordinate system y del normalized device coordinate system son iguales a las predeterminadas de OpenGL.

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

Parámetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Principal point. Las coordenadas de pixel desde el punto de interseccion del principal optical axis de la camera en el plano CCD hasta la esquina superior izquierda de la image. La unidad son pixeles.

public virtual Vec2F principalPoint()

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

Calcula la perspective projection matrix necesaria para renderizar virtual objects, transformando puntos del camera coordinate system al clip coordinate system ([-1, 1]^4), incluida la rotacion alrededor del eje z. La perspective projection matrix tiene la misma forma que OpenGL: la matrix multiplica por la derecha al column vector de coordenadas homogeneas del punto, no por la izquierda como en Direct3D. Los datos estan en orden row-major, opuesto al column-major de OpenGL. Las definiciones del clip coordinate system y del normalized device coordinate system son iguales a las predeterminadas de OpenGL.

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

Parámetros

nearPlane
farPlane
viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

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

Transforma desde el image coordinate system ([0, 1]^2) al screen coordinate system ([0, 1]^2). En ambos coordinate system, x apunta a la derecha, y apunta hacia abajo y el origin esta en la esquina superior izquierda.

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

Parámetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
imageCoordinates

size()

Tamano de la image.

public virtual Vec2I size()

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

Crea CameraParameters con custom camera intrinsics. Se deben especificar camera intrinsics (focal length, principal point, distortion coefficients) y camera model. Para los camera model soportados, consulte CameraModelType. Nota: use esta interfaz con cuidado. Datos de entrada incorrectos pueden hacer que la creacion del objeto falle y devuelva empty.

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

Parámetros

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation