Table of Contents

Class CameraParameters

Espacio de nombres
easyar
Ensayo
EasyAR.Sense.dll

Parámetros de la cámara, que incluyen el tamaño de la imagen, la distancia focal, el punto principal, el tipo de cámara y el ángulo de rotación de la cámara con respecto a la orientación natural del dispositivo.

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()

CloneObject()

protected override object CloneObject()

cameraDeviceType()

Tipo de dispositivo de cámara. Cámara predeterminada, cámara trasera o cámara frontal. Los dispositivos de escritorio son todos cámara predeterminada, los dispositivos móviles distinguen entre cámara trasera y cámara frontal.

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Modelo de cámara.

public virtual CameraModelType cameraModelType()

cameraOrientation()

Ángulo de rotación en sentido horario requerido para mostrar la imagen de la cámara en la orientación natural del dispositivo. Rango: [0, 360). Teléfonos Android y algunas tabletas Android: 90 grados. Gafas Android y algunas tabletas Android: 0 grados. Los dispositivos iOS existentes son todos 90 grados.

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

Crea CameraParameters con parámetros intrínsecos de cámara predeterminados. Los parámetros intrínsecos predeterminados (distancia focal, punto principal) se calculan automáticamente según el tamaño de la imagen, 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 parámetros son iguales.

public virtual bool equalsTo(CameraParameters other)

Parámetros

other

focalLength()

Distancia focal. La distancia desde el centro óptico equivalente de la cámara hasta el plano CCD dividida por la densidad de píxeles por unidad en las direcciones de ancho y alto. Unidad: píxeles.

public virtual Vec2F focalLength()

getResized(Vec2I)

Obtiene los CameraParameters equivalentes después de cambiar el tamaño de la imagen de la cámara.

public virtual CameraParameters getResized(Vec2I imageSize)

Parámetros

imageSize

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

Transforma desde el sistema de coordenadas de la pantalla ([0, 1]^2) al sistema de coordenadas de la imagen ([0, 1]^2). Ambos sistemas tienen x hacia la derecha, y hacia abajo, con el origen 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 imagen necesita voltearse horizontalmente. Al renderizar la imagen, primero se realiza la rotación y luego el volteo. Cuando cameraDeviceType es cámara frontal, se voltea automáticamente. Sobre esta base, se puede pasar manualHorizontalFlip para agregar un volteo manual adicional.

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parámetros

manualHorizontalFlip

imageOrientation(int)

Calcula el ángulo de rotación en sentido horario que la imagen necesita con respecto a la pantalla para alinearse con ella. screenRotation es el ángulo de rotación en sentido horario de la imagen de la pantalla con respecto a la orientación natural. 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 matriz de proyección ortográfica necesaria para renderizar la imagen de fondo de la cámara, transformando puntos desde el sistema de coordenadas del rectángulo de imagen ([-1, 1]^2) al sistema de coordenadas de recorte ([-1, 1]^4) (incluyendo rotación alrededor del eje z), manteniendo sin cambios las dos dimensiones no definidas. La forma de la matriz de proyección ortográfica es la misma que en OpenGL: la matriz se multiplica por la derecha por las coordenadas homogéneas del punto, no como en Direct3D donde la matriz se multiplica por la izquierda. Pero los datos se organizan en row-major, opuesto al column-major de OpenGL. Las definiciones de los sistemas de coordenadas de recorte y de dispositivo normalizado son las mismas que las predeterminadas de OpenGL.

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

Parámetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Punto principal. Coordenadas de píxel desde la esquina superior izquierda de la imagen hasta la intersección del eje óptico principal de la cámara con el plano CCD. Unidad: píxeles.

public virtual Vec2F principalPoint()

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

Calcula la matriz de proyección en perspectiva necesaria para renderizar objetos virtuales, transformando puntos desde el sistema de coordenadas de la cámara al sistema de coordenadas de recorte ([-1, 1]^4) (incluyendo rotación alrededor del eje z). La forma de la matriz de proyección en perspectiva es la misma que en OpenGL: la matriz se multiplica por la derecha por el vector columna de coordenadas homogéneas del punto, no como en Direct3D donde la matriz se multiplica por la izquierda. Sin embargo, los datos se organizan en row-major, opuesto al column-major de OpenGL. Las definiciones de los sistemas de coordenadas de recorte y de dispositivo normalizado son las mismas que 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 sistema de coordenadas de la imagen ([0, 1]^2) al sistema de coordenadas de la pantalla ([0, 1]^2). Ambos sistemas tienen x hacia la derecha, y hacia abajo, con el origen 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()

Tamaño de la imagen.

public virtual Vec2I size()

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

Crea CameraParameters con parámetros intrínsecos de cámara personalizados. Es necesario especificar los parámetros intrínsecos (distancia focal, punto principal, coeficientes de distorsión) y el modelo de cámara. El modelo de cámara admitido se refiere a CameraModelType. Nota: Use esta interfaz con precaución. Datos de entrada incorrectos pueden hacer que falle la creación del objeto y devuelva un valor nulo.

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

Parámetros

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation