Class CameraParameters
- Namespace
- easyar
- Assembly
- EasyAR.Sense.dll
camera parameters, einschließlich Bildgroße, focal length, principal point, camera-Typ und Rotationswinkel der camera relativ zur device natural orientation.
public class CameraParameters : RefBase, IDisposable
- Vererbung
-
CameraParameters
- Implementiert
- Geerbte Mitglieder
Konstruktoren
CameraParameters(Vec2I, Vec2F, Vec2F, CameraDeviceType, int)
public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parameter
imageSizefocalLengthprincipalPointcameraDeviceTypecameraOrientation
Methoden
Clone()
public CameraParameters Clone()
cameraDeviceType()
Typ des camera device. Default camera, back camera oder front camera. Desktop-Gerate sind alle default camera, mobile Gerate unterscheiden back camera und front camera.
public virtual CameraDeviceType cameraDeviceType()
cameraModelType()
Camera model.
public virtual CameraModelType cameraModelType()
cameraOrientation()
Der Rotationswinkel im Uhrzeigersinn, der erforderlich ist, wenn das camera image in der device natural orientation angezeigt wird. Der Bereich ist [0, 360). Android-Telefone und einige Android-Tablets haben 90 Grad. Android-Brillen und einige Android-Tablets haben 0 Grad. Vorhandene iOS-Gerate haben alle 90 Grad.
public virtual int cameraOrientation()
createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)
Erstellt CameraParameters mit default camera intrinsics. Die default camera intrinsics (focal length und principal point) werden automatisch anhand der Bildgroße berechnet, sind aber nicht besonders genau.
public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parameter
imageSizecameraDeviceTypecameraOrientation
equalsTo(CameraParameters)
Bestimmt, ob zwei Parametersatze gleich sind.
public virtual bool equalsTo(CameraParameters other)
Parameter
other
focalLength()
Focal length. Die Entfernung vom aquivalenten optical center der camera zur CCD-Ebene, geteilt durch die unit pixel density in Breiten- und Hohenrichtung. Die Einheit ist Pixel.
public virtual Vec2F focalLength()
getResized(Vec2I)
Ruft aquivalente CameraParameters ab, nachdem sich die Große des camera image geandert hat.
public virtual CameraParameters getResized(Vec2I imageSize)
Parameter
imageSize
imageCoordinatesFromScreenCoordinates(float, int, bool, bool, Vec2F)
Transformiert vom screen coordinate system ([0, 1]^2) in das image coordinate system ([0, 1]^2). In beiden coordinate system zeigt x nach rechts, y nach unten, und der origin liegt in der oberen linken Ecke.
public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
Parameter
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipscreenCoordinates
imageHorizontalFlip(bool)
Berechnet, ob das image horizontal gespiegelt werden muss. Beim Rendern des image wird zuerst rotiert und dann gespiegelt. Wenn cameraDeviceType front camera ist, wird automatisch gespiegelt; manualHorizontalFlip kann ubergeben werden, um zusatzlich eine manuelle Spiegelung anzuwenden.
public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)
Parameter
manualHorizontalFlip
imageOrientation(int)
Berechnet den Winkel im Uhrzeigersinn, um den das image relativ zum screen gedreht werden muss, damit es am screen ausgerichtet ist. screenRotation ist der Rotationswinkel des screen image im Uhrzeigersinn relativ zur natural orientation. Fur iOS: * UIInterfaceOrientationPortrait: screenRotation = 0 * UIInterfaceOrientationLandscapeRight: screenRotation = 90 * UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180 * UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Fur 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)
Parameter
screenRotation
imageProjection(float, int, bool, bool)
Berechnet die orthographic projection matrix, die zum Rendern des camera background image benotigt wird, und transformiert Punkte im image rectangle coordinate system ([-1, 1]^2) in das clip coordinate system ([-1, 1]^4), einschließlich Rotation um die z-Achse, wahrend die zwei undefinierten Dimensionen unverandert bleiben. Die orthographic projection matrix hat dieselbe Form wie in OpenGL: Die matrix wird rechts mit den homogenen Punktkoordinaten multipliziert, nicht links wie in Direct3D. Die Daten sind in row-major-Reihenfolge angeordnet, entgegengesetzt zur column-major-Reihenfolge von OpenGL. Die Definitionen des clip coordinate system und des normalized device coordinate system entsprechen den OpenGL-Standardeinstellungen.
public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Parameter
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
principalPoint()
Principal point. Die Pixelkoordinaten vom Schnittpunkt der principal optical axis der camera auf der CCD-Ebene bis zur oberen linken Ecke des Bildes. Die Einheit ist Pixel.
public virtual Vec2F principalPoint()
projection(float, float, float, int, bool, bool)
Berechnet die perspective projection matrix, die zum Rendern virtueller Objekte benotigt wird, und transformiert Punkte im camera coordinate system in das clip coordinate system ([-1, 1]^4), einschließlich Rotation um die z-Achse. Die perspective projection matrix hat dieselbe Form wie in OpenGL: Die matrix wird rechts mit dem column vector der homogenen Punktkoordinaten multipliziert, nicht links wie in Direct3D. Die Daten sind in row-major-Reihenfolge angeordnet, entgegengesetzt zur column-major-Reihenfolge von OpenGL. Die Definitionen des clip coordinate system und des normalized device coordinate system entsprechen den OpenGL-Standardeinstellungen.
public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Parameter
nearPlanefarPlaneviewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlip
screenCoordinatesFromImageCoordinates(float, int, bool, bool, Vec2F)
Transformiert vom image coordinate system ([0, 1]^2) in das screen coordinate system ([0, 1]^2). In beiden coordinate system zeigt x nach rechts, y nach unten, und der origin liegt in der oberen linken Ecke.
public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
Parameter
viewportAspectRatioscreenRotationcombiningFlipmanualHorizontalFlipimageCoordinates
size()
Bildgroße.
public virtual Vec2I size()
tryCreateWithCustomIntrinsics(Vec2I, List<float>, CameraModelType, CameraDeviceType, int)
Erstellt CameraParameters mit custom camera intrinsics. Camera intrinsics (focal length, principal point, distortion coefficients) und camera model mussen angegeben werden. Unterstutzte camera model siehe CameraModelType. Hinweis: Verwenden Sie diese Schnittstelle vorsichtig. Fehlerhafte Eingabedaten konnen dazu fuhren, dass die Objekterstellung fehlschlagt und empty zuruckgegeben wird.
public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
Parameter
imageSizecameraParamListcameraModelcameraDeviceTypecameraOrientation