Table of Contents

Class CameraParameters

Namespace
easyar

camera Parameter, einschließlich Bildgröße, Brennweite, Hauptpunkt, camera Typ und camera Rotationswinkel relativ zur natürlichen Ausrichtung des Geräts.

CameraParameters

Konstruktoren

CameraParameters

void easyar_CameraParameters__ctor(easyar_Vec2I imageSize, easyar_Vec2F focalLength, easyar_Vec2F principalPoint, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_CameraParameters * * Return)
CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)
public CameraParameters(@Nonnull Vec2I imageSize, @Nonnull Vec2F focalLength, @Nonnull Vec2F principalPoint, int cameraDeviceType, int cameraOrientation)
constructor(imageSize: Vec2I, focalLength: Vec2F, principalPoint: Vec2F, cameraDeviceType: Int, cameraOrientation: Int)
+ (easyar_CameraParameters *) create:(easyar_Vec2I *)imageSize focalLength:(easyar_Vec2F *)focalLength principalPoint:(easyar_Vec2F *)principalPoint cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public convenience init(_ imageSize: Vec2I, _ focalLength: Vec2F, _ principalPoint: Vec2F, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32)
public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parameter

Name Typ Beschreibung
imageSize Vec2I
focalLength Vec2F
principalPoint Vec2F
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Methoden

size

Bildgröße.

easyar_Vec2I easyar_CameraParameters_size(const easyar_CameraParameters * This)
Vec2I size()
public @Nonnull Vec2I size()
fun size(): Vec2I
- (easyar_Vec2I *)size
public func size() -> Vec2I
public virtual Vec2I size()

Rückgabewert

Typ Beschreibung
Vec2I

focalLength

Brennweite. Der Abstand vom äquivalenten optischen Zentrum der Kamera zur CCD-Ebene geteilt durch die Pixeldichte in Breite und Höhe. Einheit: Pixel.

easyar_Vec2F easyar_CameraParameters_focalLength(const easyar_CameraParameters * This)
Vec2F focalLength()
public @Nonnull Vec2F focalLength()
fun focalLength(): Vec2F
- (easyar_Vec2F *)focalLength
public func focalLength() -> Vec2F
public virtual Vec2F focalLength()

Rückgabewert

Typ Beschreibung
Vec2F

principalPoint

Hauptpunkt. Die Pixelkoordinaten des Schnittpunkts der optischen Achse der Kamera mit der CCD-Ebene relativ zur oberen linken Ecke des Bildes. Einheit: Pixel.

easyar_Vec2F easyar_CameraParameters_principalPoint(const easyar_CameraParameters * This)
Vec2F principalPoint()
public @Nonnull Vec2F principalPoint()
fun principalPoint(): Vec2F
- (easyar_Vec2F *)principalPoint
public func principalPoint() -> Vec2F
public virtual Vec2F principalPoint()

Rückgabewert

Typ Beschreibung
Vec2F

cameraModelType

Kameramodell.

easyar_CameraModelType easyar_CameraParameters_cameraModelType(const easyar_CameraParameters * This)
CameraModelType cameraModelType()
public int cameraModelType()
fun cameraModelType(): Int
- (easyar_CameraModelType)cameraModelType
public func cameraModelType() -> CameraModelType
public virtual CameraModelType cameraModelType()

Rückgabewert

Typ Beschreibung
CameraModelType

cameraDeviceType

Kameragerätetyp. Standardkamera, Rückkamera oder Frontkamera. Bei Desktop-Geräten ist es immer die Standardkamera, bei mobilen Geräten wird zwischen Rückkamera und Frontkamera unterschieden.

easyar_CameraDeviceType easyar_CameraParameters_cameraDeviceType(const easyar_CameraParameters * This)
CameraDeviceType cameraDeviceType()
public int cameraDeviceType()
fun cameraDeviceType(): Int
- (easyar_CameraDeviceType)cameraDeviceType
public func cameraDeviceType() -> CameraDeviceType
public virtual CameraDeviceType cameraDeviceType()

Rückgabewert

Typ Beschreibung
CameraDeviceType

cameraOrientation

Der Winkel, um den das Kamerabild im Uhrzeigersinn gedreht werden muss, um in der natürlichen Ausrichtung des Geräts angezeigt zu werden. Bereich: [0, 360). Bei Android-Handys und einigen Android-Tablets beträgt er 90 Grad. Bei Android-Brillen und einigen Android-Tablets beträgt er 0 Grad. Bei bestehenden iOS-Geräten beträgt er 90 Grad.

int easyar_CameraParameters_cameraOrientation(const easyar_CameraParameters * This)
int cameraOrientation()
public int cameraOrientation()
fun cameraOrientation(): Int
- (int)cameraOrientation
public func cameraOrientation() -> Int32
public virtual int cameraOrientation()

Rückgabewert

Typ Beschreibung
Int32

createWithDefaultIntrinsics

Erstellt CameraParameters mit Standardkameraintrinsik. Die Standardkameraintrinsik (Brennweite, Hauptpunkt) wird automatisch basierend auf der Bildgröße berechnet, ist aber nicht besonders genau.

void easyar_CameraParameters_createWithDefaultIntrinsics(easyar_Vec2I imageSize, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_CameraParameters * * Return)
static std::shared_ptr<CameraParameters> createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)
public static @Nonnull CameraParameters createWithDefaultIntrinsics(@Nonnull Vec2I imageSize, int cameraDeviceType, int cameraOrientation)
companion object fun createWithDefaultIntrinsics(imageSize: Vec2I, cameraDeviceType: Int, cameraOrientation: Int): CameraParameters
+ (easyar_CameraParameters *)createWithDefaultIntrinsics:(easyar_Vec2I *)imageSize cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public static func createWithDefaultIntrinsics(_ imageSize: Vec2I, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32) -> CameraParameters
public static CameraParameters createWithDefaultIntrinsics(Vec2I imageSize, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parameter

Name Typ Beschreibung
imageSize Vec2I
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Rückgabewert

Typ Beschreibung
CameraParameters

tryCreateWithCustomIntrinsics

Erstellt CameraParameters mit benutzerdefinierter Kameraintrinsik. Es müssen die Kameraintrinsik (Brennweite, Hauptpunkt, Verzerrungskoeffizienten) und das Kameramodell angegeben werden. Unterstützte Kameramodelle siehe CameraModelType. Hinweis: Verwenden Sie diese Schnittstelle mit Vorsicht, falsche Eingabedaten können zum Fehlschlagen der Objekterstellung führen und leere Rückgabe verursachen.

void easyar_CameraParameters_tryCreateWithCustomIntrinsics(easyar_Vec2I imageSize, easyar_ListOfFloat * cameraParamList, easyar_CameraModelType cameraModel, easyar_CameraDeviceType cameraDeviceType, int cameraOrientation, easyar_OptionalOfCameraParameters * Return)
static std::optional<std::shared_ptr<CameraParameters>> tryCreateWithCustomIntrinsics(Vec2I imageSize, std::vector<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)
public static @Nullable CameraParameters tryCreateWithCustomIntrinsics(@Nonnull Vec2I imageSize, java.util.@Nonnull ArrayList<java.lang.@Nonnull Float> cameraParamList, int cameraModel, int cameraDeviceType, int cameraOrientation)
companion object fun tryCreateWithCustomIntrinsics(imageSize: Vec2I, cameraParamList: ArrayList<Float>, cameraModel: Int, cameraDeviceType: Int, cameraOrientation: Int): CameraParameters?
+ (easyar_CameraParameters *)tryCreateWithCustomIntrinsics:(easyar_Vec2I *)imageSize cameraParamList:(NSArray<NSNumber *> *)cameraParamList cameraModel:(easyar_CameraModelType)cameraModel cameraDeviceType:(easyar_CameraDeviceType)cameraDeviceType cameraOrientation:(int)cameraOrientation
public static func tryCreateWithCustomIntrinsics(_ imageSize: Vec2I, _ cameraParamList: [Float], _ cameraModel: CameraModelType, _ cameraDeviceType: CameraDeviceType, _ cameraOrientation: Int32) -> CameraParameters?
public static Optional<CameraParameters> tryCreateWithCustomIntrinsics(Vec2I imageSize, List<float> cameraParamList, CameraModelType cameraModel, CameraDeviceType cameraDeviceType, int cameraOrientation)

Parameter

Name Typ Beschreibung
imageSize Vec2I
cameraParamList List<Single>
cameraModel CameraModelType
cameraDeviceType CameraDeviceType
cameraOrientation Int32

Rückgabewert

Typ Beschreibung
Optional<>

getResized

Ruft die äquivalenten CameraParameters nach Änderung der Kamerabildgröße ab.

void easyar_CameraParameters_getResized(easyar_CameraParameters * This, easyar_Vec2I imageSize, easyar_CameraParameters * * Return)
std::shared_ptr<CameraParameters> getResized(Vec2I imageSize)
public @Nonnull CameraParameters getResized(@Nonnull Vec2I imageSize)
fun getResized(imageSize: Vec2I): CameraParameters
- (easyar_CameraParameters *)getResized:(easyar_Vec2I *)imageSize
public func getResized(_ imageSize: Vec2I) -> CameraParameters
public virtual CameraParameters getResized(Vec2I imageSize)

Parameter

Name Typ Beschreibung
imageSize Vec2I

Rückgabewert

Typ Beschreibung
CameraParameters

imageOrientation

Berechnet den Winkel, um den das Bild im Uhrzeigersinn relativ zum Bildschirm gedreht werden muss, um mit dem Bildschirm ausgerichtet zu werden. screenRotation ist der Winkel, um den das Bildschirmbild im Uhrzeigersinn relativ zur natürlichen Ausrichtung gedreht ist. Für iOS:

  • UIInterfaceOrientationPortrait: screenRotation = 0
  • UIInterfaceOrientationLandscapeRight: screenRotation = 90
  • UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180
  • UIInterfaceOrientationLandscapeLeft: screenRotation = 270 Für Android:
  • Surface.ROTATION_0: screenRotation = 0
  • Surface.ROTATION_90: screenRotation = 90
  • Surface.ROTATION_180: screenRotation = 180
  • Surface.ROTATION_270: screenRotation = 270
int easyar_CameraParameters_imageOrientation(const easyar_CameraParameters * This, int screenRotation)
int imageOrientation(int screenRotation)
public int imageOrientation(int screenRotation)
fun imageOrientation(screenRotation: Int): Int
- (int)imageOrientation:(int)screenRotation
public func imageOrientation(_ screenRotation: Int32) -> Int32
public virtual int imageOrientation(int screenRotation)

Parameter

Name Typ Beschreibung
screenRotation Int32

Rückgabewert

Typ Beschreibung
Int32

imageHorizontalFlip

Berechnet, ob das Bild horizontal gespiegelt werden muss. Beim Rendern des Bildes wird zuerst gedreht, dann gespiegelt. Wenn cameraDeviceType Frontkamera ist, wird automatisch gespiegelt; darauf aufbauend kann manualHorizontalFlip übergeben werden, um eine manuelle Spiegelung hinzuzufügen.

bool easyar_CameraParameters_imageHorizontalFlip(const easyar_CameraParameters * This, bool manualHorizontalFlip)
bool imageHorizontalFlip(bool manualHorizontalFlip)
public boolean imageHorizontalFlip(boolean manualHorizontalFlip)
fun imageHorizontalFlip(manualHorizontalFlip: Boolean): Boolean
- (bool)imageHorizontalFlip:(bool)manualHorizontalFlip
public func imageHorizontalFlip(_ manualHorizontalFlip: Bool) -> Bool
public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

Parameter

Name Typ Beschreibung
manualHorizontalFlip Boolean

Rückgabewert

Typ Beschreibung
Boolean

projection

Berechnet die perspektivische Projektionsmatrix, die zum Rendern virtueller Objekte benötigt wird, um Punkte vom Kamerakoordinatensystem in das Clip-Koordinatensystem ([-1, 1]^4) zu transformieren (einschließlich Rotation um die z-Achse). Die Form der perspektivischen Projektionsmatrix entspricht OpenGL, wobei die Matrix rechts mit dem homogenen Koordinatenvektor des Punkts multipliziert wird, nicht wie bei Direct3D, wo die Matrix links multipliziert wird. Die Datenanordnung ist jedoch row-major, im Gegensatz zu OpenGLs column-major. Die Definitionen von Clip-Koordinatensystem und normalisiertem Gerätekoordinatensystem sind identisch mit OpenGL-Standard.

easyar_Matrix44F easyar_CameraParameters_projection(const easyar_CameraParameters * This, float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
public @Nonnull Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip)
fun projection(nearPlane: Float, farPlane: Float, viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean): Matrix44F
- (easyar_Matrix44F *)projection:(float)nearPlane farPlane:(float)farPlane viewportAspectRatio:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip
public func projection(_ nearPlane: Float, _ farPlane: Float, _ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool) -> Matrix44F
public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)

Parameter

Name Typ Beschreibung
nearPlane Single
farPlane Single
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Rückgabewert

Typ Beschreibung
Matrix44F

imageProjection

Berechnet die orthogonale Projektionsmatrix, die zum Rendern des Kamerahintergrundbilds benötigt wird, um Punkte vom Bildrechteckkoordinatensystem ([-1, 1]^2) in das Clip-Koordinatensystem ([-1, 1]^4) zu transformieren (einschließlich Rotation um die z-Achse), wobei die undefinierten zwei Dimensionen unverändert bleiben. Die Form der orthogonalen Projektionsmatrix entspricht OpenGL, wobei die Matrix rechts mit den homogenen Koordinaten des Punkts multipliziert wird, nicht wie bei Direct3D, wo die Matrix links multipliziert wird. Die Datenanordnung ist jedoch row-major, im Gegensatz zu OpenGLs column-major. Die Definitionen von Clip-Koordinatensystem und normalisiertem Gerätekoordinatensystem sind identisch mit OpenGL-Standard.

easyar_Matrix44F easyar_CameraParameters_imageProjection(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)
public @Nonnull Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip)
fun imageProjection(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean): Matrix44F
- (easyar_Matrix44F *)imageProjection:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip
public func imageProjection(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool) -> Matrix44F
public virtual Matrix44F imageProjection(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)

Parameter

Name Typ Beschreibung
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

Rückgabewert

Typ Beschreibung
Matrix44F

screenCoordinatesFromImageCoordinates

Transformiert vom Bildkoordinatensystem ([0, 1]^2) zum Bildschirmkoordinatensystem ([0, 1]^2), wobei beide Koordinatensysteme x nach rechts, y nach unten haben und der Ursprung in der oberen linken Ecke liegt.

easyar_Vec2F easyar_CameraParameters_screenCoordinatesFromImageCoordinates(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, easyar_Vec2F imageCoordinates)
Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)
public @Nonnull Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip, @Nonnull Vec2F imageCoordinates)
fun screenCoordinatesFromImageCoordinates(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean, imageCoordinates: Vec2F): Vec2F
- (easyar_Vec2F *)screenCoordinatesFromImageCoordinates:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip imageCoordinates:(easyar_Vec2F *)imageCoordinates
public func screenCoordinatesFromImageCoordinates(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool, _ imageCoordinates: Vec2F) -> Vec2F
public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)

Parameter

Name Typ Beschreibung
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
imageCoordinates Vec2F

Rückgabewert

Typ Beschreibung
Vec2F

imageCoordinatesFromScreenCoordinates

Transformiert vom Bildschirmkoordinatensystem ([0, 1]^2) zum Bildkoordinatensystem ([0, 1]^2), wobei beide Koordinatensysteme x nach rechts, y nach unten haben und der Ursprung in der oberen linken Ecke liegt.

easyar_Vec2F easyar_CameraParameters_imageCoordinatesFromScreenCoordinates(const easyar_CameraParameters * This, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, easyar_Vec2F screenCoordinates)
Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)
public @Nonnull Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, boolean combiningFlip, boolean manualHorizontalFlip, @Nonnull Vec2F screenCoordinates)
fun imageCoordinatesFromScreenCoordinates(viewportAspectRatio: Float, screenRotation: Int, combiningFlip: Boolean, manualHorizontalFlip: Boolean, screenCoordinates: Vec2F): Vec2F
- (easyar_Vec2F *)imageCoordinatesFromScreenCoordinates:(float)viewportAspectRatio screenRotation:(int)screenRotation combiningFlip:(bool)combiningFlip manualHorizontalFlip:(bool)manualHorizontalFlip screenCoordinates:(easyar_Vec2F *)screenCoordinates
public func imageCoordinatesFromScreenCoordinates(_ viewportAspectRatio: Float, _ screenRotation: Int32, _ combiningFlip: Bool, _ manualHorizontalFlip: Bool, _ screenCoordinates: Vec2F) -> Vec2F
public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)

Parameter

Name Typ Beschreibung
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
screenCoordinates Vec2F

Rückgabewert

Typ Beschreibung
Vec2F

equalsTo

Bestimmt, ob zwei Parameter-Sätze gleich sind.

bool easyar_CameraParameters_equalsTo(const easyar_CameraParameters * This, easyar_CameraParameters * other)
bool equalsTo(std::shared_ptr<CameraParameters> other)
public boolean equalsTo(@Nonnull CameraParameters other)
fun equalsTo(other: CameraParameters): Boolean
- (bool)equalsTo:(easyar_CameraParameters *)other
public func equalsTo(_ other: CameraParameters) -> Bool
public virtual bool equalsTo(CameraParameters other)

Parameter

Name Typ Beschreibung
other CameraParameters

Rückgabewert

Typ Beschreibung
Boolean