Class CameraParameters
- Espace de noms
- easyar
- Assembly
- EasyAR.Sense.dll
Paramètres de la camera, incluant la taille de l'image, la distance focale, le point principal, le type de camera et l'angle de rotation de la camera par rapport à l'orientation naturelle de l'appareil.
public class CameraParameters : RefBase, IDisposable
- Héritage
-
CameraParameters
- Implémente
- Membres hérités
Constructeurs
CameraParameters(Vec2I, Vec2F, Vec2F, CameraDeviceType, int)
public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
Paramètres
imageSizefocalLengthprincipalPointcameraDeviceTypecameraOrientation
Méthodes
Clone()
public CameraParameters Clone()
cameraDeviceType()
Type de périphérique caméra. Par défaut caméra, caméra arrière ou caméra frontale. Les appareils de bureau utilisent tous la caméra par défaut, tandis que les appareils mobiles distinguent la caméra arrière et la caméra frontale.
public virtual CameraDeviceType cameraDeviceType()
cameraModelType()
Modèle d'appareil photo.
public virtual CameraModelType cameraModelType()
cameraOrientation()
L'angle de rotation horaire nécessaire pour afficher l'image de la caméra dans l'orientation naturelle de l'appareil. La plage est [0, 360). Les téléphones Android et certaines tablettes Android sont à 90 degrés. Les lunettes Android et certaines tablettes Android sont à 0 degré. Tous les appareils iOS existants sont à 90 degrés.
public virtual int cameraOrientation()
createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)
Créez des paramètres de caméra avec les paramètres intrinsèques par défaut. Les paramètres intrinsèques par défaut (distance focale, point principal) sont calculés automatiquement en fonction de la taille de l'image, mais ne sont pas particulièrement précis.
public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
Paramètres
imageSizecameraDeviceTypecameraOrientation
equalsTo(CameraParameters)
Vérifiez si deux ensembles de paramètres sont égaux.
public virtual bool equalsTo(CameraParameters other)
Paramètres
other
focalLength()
Distance focale. La distance entre le centre optique équivalent de l'appareil photo et le plan CCD divisée par la densité de pixels unitaires dans les directions de largeur et de hauteur. Unité: pixel.
public virtual Vec2F focalLength()
getResized(Vec2I)
Obtenir les paramètres de caméra équivalents après la modification de la taille de l'image de la caméra.
public virtual CameraParameters getResized(Vec2I imageSize)
Paramètres
imageSize
imageCoordinatesFromScreenCoordinates(float, int, bool, bool, Vec2F)
Transformation du système de coordonnées d'écran ([0, 1]^2) vers le système de coordonnées d'image ([0, 1]^2), les deux systèmes ayant x vers la droite et y vers le bas, avec l'origine en haut à gauche.
public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
Paramètres
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipscreenCoordinates
imageHorizontalFlip(bool)
Déterminer si l'image nécessite un retournement horizontal. Lors du rendu de l'image, la rotation est appliquée en premier, suivie du retournement. Lorsque le cameraDeviceType est une caméra avant, le retournement est automatique. Sur cette base, il est possible de superposer un retournement manuel supplémentaire en transmettant manualHorizontalFlip.
public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)
Paramètres
manualHorizontalFlip
imageOrientation(int)
Calculez l'angle de rotation dans le sens des aiguilles d'une montre requis pour aligner l'image à l'écran. screenRotation représente l'angle de rotation de l'image de l'écran par rapport à son orientation naturelle. Pour iOS : * UIInterfaceOrientationPortrait : screenRotation = 0 * UIInterfaceOrientationLandscapeRight : screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown : screenRotation = 180 * UIInterfaceOrientationLandscapeLeft : screenRotation = 270 Pour 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)
Paramètres
screenRotation
imageProjection(float, int, bool, bool)
Calcul de la matrice de projection orthographique nécessaire pour le rendu de l'image d'arrière-plan de la caméra, transformant les points du système de coordonnées rectangulaire de l'image ([-1, 1]^2) vers l'espace de clipping ([-1, 1]^4) (incluant une rotation autour de l'axe z), les deux dimensions non définies restant inchangées. La forme de la matrice de projection orthographique est identique à celle d'OpenGL, où la matrice est multipliée à droite par les coordonnées homogènes du point, et non comme dans Direct3D où la matrice est multipliée à gauche par les coordonnées homogènes du point. Cependant, les données sont arrangées en row-major, à l'opposé du column-major d'OpenGL. Les définitions de l'espace de clipping et de l'espace de coordonnées normalisées de périphérique (NDC) sont identiques aux valeurs par défaut d'OpenGL.
public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Paramètres
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
principalPoint()
Point principal. Coordonnées en pixels du point d'intersection de l'axe optique principal de la caméra avec le plan CCD, par rapport au coin supérieur gauche de l'image. Unité : pixels.
public virtual Vec2F principalPoint()
projection(float, float, float, int, bool, bool)
Calculer la matrice de projection perspective nécessaire pour rendre un objet virtuel, qui transforme les points du système de coordonnées de la caméra en coordonnées de découpage ([-1, 1]^4) (incluant une rotation autour de l'axe z). La forme de la matrice de projection perspective est la même que celle d'OpenGL, où la matrice est multipliée à droite par le vecteur colonne des coordonnées homogènes du point, contrairement à Direct3D où la matrice est multipliée à gauche par ce vecteur. Cependant, l'agencement des données est row-major, ce qui est l'inverse du column-major d'OpenGL. Les définitions des coordonnées de découpage et des coordonnées normalisées du périphérique (NDC) sont identiques à celles par défaut d'OpenGL.
public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Paramètres
nearPlanefarPlaneviewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
screenCoordinatesFromImageCoordinates(float, int, bool, bool, Vec2F)
Transformation du système de coordonnées d'image ([0, 1]^2) vers le système de coordonnées d'écran ([0, 1]^2), les deux systèmes ayant x vers la droite et y vers le bas, avec l'origine en haut à gauche.
public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
Paramètres
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipimageCoordinates
size()
Taille de l'image.
public virtual Vec2I size()
tryCreateWithCustomIntrinsics(Vec2I, List<float>, CameraModelType, CameraDeviceType, int)
Créez des paramètres de caméra à l'aide des paramètres intrinsèques personnalisés. Il est nécessaire de spécifier les paramètres intrinsèques de la caméra (distance focale, point principal, coefficients de distorsion) ainsi que le modèle de caméra. Le modèle de caméra prend en charge la référence CameraModelType. Remarque: Utilisez cette interface avec précaution, des données d'entrée incorrectes peuvent entraîner un échec de création de l'objet et retourner une valeur nulle.
public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
Paramètres
imageSizecameraParamListcameraModelcameraDeviceTypecameraOrientation