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