Table of Contents

Class CameraParameters

Espaço de nomes
easyar
Assembly
EasyAR.Sense.dll

camera parameters, incluindo tamanho da image, focal length, principal point, tipo de camera e angulo de rotacao da camera em relacao a device natural orientation.

public class CameraParameters : RefBase, IDisposable
Herança
CameraParameters
Implementa
Membros herdados

Construtores

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 ou front camera. Dispositivos desktop sao todos default camera, enquanto dispositivos moveis distinguem back camera e front camera.

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Camera model.

public virtual CameraModelType cameraModelType()

cameraOrientation()

O angulo de rotacao no sentido horario necessario ao exibir a camera image na device natural orientation. O intervalo e [0, 360). Telefones Android e alguns tablets Android sao 90 graus. Oculos Android e alguns tablets Android sao 0 grau. Dispositivos iOS existentes sao todos 90 graus.

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

Cria CameraParameters com default camera intrinsics. Os default camera intrinsics (focal length e principal point) sao calculados automaticamente pelo tamanho da image, mas nao sao especialmente precisos.

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

Parâmetros

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

Determina se dois conjuntos de parameters sao iguais.

public virtual bool equalsTo(CameraParameters other)

Parâmetros

other

focalLength()

Focal length. A distancia do optical center equivalente da camera ate o plano CCD dividida pela unit pixel density nas direcoes de largura e altura. A unidade e pixels.

public virtual Vec2F focalLength()

getResized(Vec2I)

Obtem CameraParameters equivalentes depois que o tamanho da camera image muda.

public virtual CameraParameters getResized(Vec2I imageSize)

Parâmetros

imageSize

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

Transforma do screen coordinate system ([0, 1]^2) para o image coordinate system ([0, 1]^2). Em ambos os coordinate system, x aponta para a direita, y aponta para baixo e a origin esta no canto superior esquerdo.

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

Parâmetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
screenCoordinates

imageHorizontalFlip(bool)

Calcula se a image precisa de horizontal flipping. Durante o rendering da image, a rotacao e aplicada primeiro e depois o flipping. Quando cameraDeviceType e front camera, o flipping e executado automaticamente; manualHorizontalFlip pode ser passado para aplicar mais um flip manual sobre isso.

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parâmetros

manualHorizontalFlip

imageOrientation(int)

Calcula o angulo horario pelo qual a image precisa ser rotacionada em relacao a screen para se alinhar a screen. screenRotation e o angulo de rotacao horario da screen image em relacao a 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 a orthographic projection matrix necessaria para renderizar a camera background image, transformando pontos no image rectangle coordinate system ([-1, 1]^2) para o clip coordinate system ([-1, 1]^4), incluindo rotacao ao redor do eixo z, enquanto as duas dimensoes indefinidas permanecem inalteradas. A orthographic projection matrix tem a mesma forma do OpenGL: a matrix e multiplicada a direita pelas coordenadas homogeneas do ponto, nao a esquerda como no Direct3D. Os dados sao organizados em ordem row-major, oposta a column-major do OpenGL. As definicoes do clip coordinate system e do normalized device coordinate system sao iguais aos padroes do OpenGL.

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

Parâmetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Principal point. As coordenadas de pixel do ponto de intersecao do principal optical axis da camera no plano CCD ate o canto superior esquerdo da image. A unidade e pixels.

public virtual Vec2F principalPoint()

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

Calcula a perspective projection matrix necessaria para renderizar virtual objects, transformando pontos no camera coordinate system para o clip coordinate system ([-1, 1]^4), incluindo rotacao ao redor do eixo z. A perspective projection matrix tem a mesma forma do OpenGL: a matrix e multiplicada a direita pelo column vector das coordenadas homogeneas do ponto, nao a esquerda como no Direct3D. Os dados sao organizados em ordem row-major, oposta a column-major do OpenGL. As definicoes do clip coordinate system e do normalized device coordinate system sao iguais aos padroes do 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 do image coordinate system ([0, 1]^2) para o screen coordinate system ([0, 1]^2). Em ambos os coordinate system, x aponta para a direita, y aponta para baixo e a origin esta no canto superior esquerdo.

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

Parâmetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
imageCoordinates

size()

Tamanho da image.

public virtual Vec2I size()

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

Cria CameraParameters com custom camera intrinsics. Camera intrinsics (focal length, principal point, distortion coefficients) e camera model devem ser especificados. Para camera model suportados, consulte CameraModelType. Observacao: use esta interface com cuidado. Dados de entrada incorretos podem fazer a criacao do objeto falhar e retornar empty.

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

Parâmetros

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation