Table of Contents

Class CameraParameters

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

Parâmetros da câmera, incluindo tamanho da imagem, distância focal, ponto principal, tipo de câmera e ângulo de rotação da câmera em relação à orientação natural do dispositivo.

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

CloneObject()

protected override object CloneObject()

cameraDeviceType()

Tipo de dispositivo da câmera. Padrão, câmera traseira ou câmera frontal. Dispositivos desktop são todos câmera padrão, dispositivos móveis distinguem entre câmera traseira e frontal.

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Modelo da câmera.

public virtual CameraModelType cameraModelType()

cameraOrientation()

Ângulo pelo qual a imagem da câmera precisa ser girada no sentido horário para ser exibida na orientação natural do dispositivo. Intervalo: [0, 360). Telefones Android e alguns tablets Android: 90 graus. Óculos Android e alguns tablets Android: 0 grau. Dispositivos iOS existentes: todos 90 graus.

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

Cria CameraParameters com parâmetros intrínsecos padrão da câmera. Os parâmetros intrínsecos padrão (distância focal, ponto principal) são calculados automaticamente com base no tamanho da imagem, mas não são particularmente precisos.

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

Parâmetros

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

Determina se dois conjuntos de parâmetros são iguais.

public virtual bool equalsTo(CameraParameters other)

Parâmetros

other

focalLength()

Distância focal. A distância do centro óptico equivalente da câmera ao plano CCD dividida pela densidade de pixels por unidade nas direções de largura e altura. Unidade: pixels.

public virtual Vec2F focalLength()

getResized(Vec2I)

Obtém o CameraParameters equivalente após a alteração do tamanho da imagem da câmera.

public virtual CameraParameters getResized(Vec2I imageSize)

Parâmetros

imageSize

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

Transforma do sistema de coordenadas da tela ([0, 1]^2) para o sistema de coordenadas da imagem ([0, 1]^2), ambos com x para a direita, y para baixo e origem 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 imagem precisa ser invertida horizontalmente (espelhada). Na renderização da imagem, a rotação é aplicada primeiro, seguida pela inversão. Quando cameraDeviceType é câmera frontal, a inversão é aplicada automaticamente; com base nisso, um manualHorizontalFlip pode ser passado para aplicar uma inversão manual adicional.

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parâmetros

manualHorizontalFlip

imageOrientation(int)

Calcula o ângulo pelo qual a imagem precisa ser girada no sentido horário em relação à tela para se alinhar com ela. screenRotation é o ângulo pelo qual a imagem na tela é girada no sentido horário em relação à orientação 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 a matriz de projeção ortográfica necessária para renderizar a imagem de fundo da câmera, transformando pontos do sistema de coordenadas do retângulo da imagem ([-1, 1]^2) para o espaço de recorte ([-1, 1]^4) (incluindo rotação em torno do eixo z), mantendo as duas dimensões indefinidas inalteradas. A forma da matriz de projeção ortográfica é a mesma do OpenGL, ou seja, a matriz multiplicada à direita pelas coordenadas homogêneas do ponto, diferente do Direct3D que multiplica à esquerda. No entanto, os dados são organizados em row-major, oposto ao column-major do OpenGL. As definições do espaço de recorte e do espaço de coordenadas do dispositivo normalizado são as mesmas do padrão OpenGL.

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

Parâmetros

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Ponto principal. As coordenadas de pixel do ponto onde o eixo óptico principal da câmera cruza o plano CCD até o canto superior esquerdo da imagem. Unidade: pixels.

public virtual Vec2F principalPoint()

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

Calcula a matriz de projeção em perspectiva necessária para renderizar objetos virtuais, transformando pontos do sistema de coordenadas da câmera para o espaço de recorte ([-1, 1]^4) (incluindo rotação em torno do eixo z). A forma da matriz de projeção em perspectiva é a mesma do OpenGL, ou seja, a matriz multiplicada à direita pelo vetor coluna de coordenadas homogêneas do ponto, diferente do Direct3D que multiplica à esquerda. No entanto, os dados são organizados em row-major, oposto ao column-major do OpenGL. As definições do espaço de recorte e do espaço de coordenadas do dispositivo normalizado são as mesmas do padrão 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 sistema de coordenadas da imagem ([0, 1]^2) para o sistema de coordenadas da tela ([0, 1]^2), ambos com x para a direita, y para baixo e origem 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 imagem.

public virtual Vec2I size()

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

Cria CameraParameters com parâmetros intrínsecos personalizados da câmera. Requer especificar os parâmetros intrínsecos (distância focal, ponto principal, coeficientes de distorção) e o modelo da câmera. O modelo da câmera suportado é referenciado em CameraModelType. Nota: Use esta interface com cautela; dados de entrada incorretos podem causar falha na criação do objeto, retornando vazio.

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

Parâmetros

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation