Table of Contents

Class CameraParameters

名前空間
easyar

カメラパラメータ、画像サイズ、焦点距離、主点、カメラタイプ、およびカメラのデバイス自然方向に対する回転角度を含む。

CameraParameters

コンストラクター

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)

パラメーター

名前 説明
imageSize Vec2I
focalLength Vec2F
principalPoint Vec2F
cameraDeviceType CameraDeviceType
cameraOrientation Int32

メソッド

size

画像サイズ。

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

戻り値

説明
Vec2I

focalLength

焦点距離。カメラの等価光心からCCD平面までの距離を、幅と高さの2方向の単位ピクセル密度で割ったもの。単位はピクセル。

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

戻り値

説明
Vec2F

principalPoint

主点。カメラの主光軸がCCD平面と交わる点から画像の左上隅までのピクセル座標。単位はピクセル。

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

戻り値

説明
Vec2F

cameraModelType

カメラモデル。

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

戻り値

説明
CameraModelType

cameraDeviceType

カメラデバイスタイプ。デフォルトカメラ、リアカメラ、またはフロントカメラ。デスクトップデバイスはすべてデフォルトカメラ、モバイルデバイスはリアカメラとフロントカメラを区別する。

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

戻り値

説明
CameraDeviceType

cameraOrientation

カメラ画像をデバイスの自然方向で表示する際に必要な時計回りの回転角度。範囲は[0, 360)。 Androidスマートフォンおよび一部のAndroidタブレットは90度。 Androidグラスおよび一部のAndroidタブレットは0度。 既存のiOSデバイスはすべて90度。

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

戻り値

説明
Int32

createWithDefaultIntrinsics

デフォルトのカメラ内部パラメータでCameraParametersを作成する。デフォルトのカメラ内部パラメータ(焦点距離、主点)は画像サイズに基づいて自動計算されるが、特に正確ではない。

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)

パラメーター

名前 説明
imageSize Vec2I
cameraDeviceType CameraDeviceType
cameraOrientation Int32

戻り値

説明
CameraParameters

tryCreateWithCustomIntrinsics

カスタムカメラ内部パラメータを使用してCameraParametersを作成する。カメラ内部パラメータ(焦点距離、主点、歪み係数)およびカメラモデルを指定する必要がある。カメラモデルのサポートはCameraModelTypeを参照。 注意: このインターフェイスは慎重に使用してください。入力データのエラーによりオブジェクトの作成が失敗し、空が返される可能性がある。

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)

パラメーター

名前 説明
imageSize Vec2I
cameraParamList List<Single>
cameraModel CameraModelType
cameraDeviceType CameraDeviceType
cameraOrientation Int32

戻り値

説明
Optional<>

getResized

カメラ画像サイズが変更された後の等価なCameraParametersを取得する。

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)

パラメーター

名前 説明
imageSize Vec2I

戻り値

説明
CameraParameters

imageOrientation

画像をスクリーンに対して時計回りに回転させてスクリーンと揃えるために必要な角度を計算する。 screenRotationは、スクリーン画像が自然方向に対して時計回りに回転した角度である。 iOSの場合:

  • UIInterfaceOrientationPortrait: screenRotation = 0
  • UIInterfaceOrientationLandscapeRight: screenRotation = 90
  • UIInterfaceOrientationPortraitUpsideDown: screenRotation = 180
  • UIInterfaceOrientationLandscapeLeft: screenRotation = 270 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)

パラメーター

名前 説明
screenRotation Int32

戻り値

説明
Int32

imageHorizontalFlip

画像を左右反転する必要があるかどうかを計算する。画像のレンダリング時には、まず回転が行われ、次に反転が行われる。cameraDeviceTypeがフロントカメラの場合、自動的に反転が行われる。この上に、manualHorizontalFlipを渡して手動の反転を追加できる。

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)

パラメーター

名前 説明
manualHorizontalFlip Boolean

戻り値

説明
Boolean

projection

仮想オブジェクトをレンダリングするために必要な透視投影行列を計算する。カメラ座標系の点をクリップ座標系([-1, 1]^4)に変換する(z軸周りの回転を含む)。透視投影行列の形式はOpenGLと同じで、行列の右側に点の同次座標の列ベクトルを乗算する。Direct3Dの行列の左側に乗算するのとは異なる。ただし、データの配置は行優先であり、OpenGLの列優先とは逆である。クリップ座標系と正規化デバイス座標系の定義はOpenGLデフォルトと同じである。

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)

パラメーター

名前 説明
nearPlane Single
farPlane Single
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

戻り値

説明
Matrix44F

imageProjection

カメラの背景画像をレンダリングするために必要な正射影行列を計算する。画像矩形座標系([-1, 1]^2)の点をクリップ座標系([-1, 1]^4)に変換する(z軸周りの回転を含み、未定義の2次元はそのまま)。正射影行列の形式はOpenGLと同じで、行列の右側に点の同次座標を乗算する。Direct3Dの行列の左側に乗算するのとは異なる。ただし、データの配置は行優先であり、OpenGLの列優先とは逆である。クリップ座標系と正規化デバイス座標系の定義はOpenGLデフォルトと同じである。

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)

パラメーター

名前 説明
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean

戻り値

説明
Matrix44F

screenCoordinatesFromImageCoordinates

画像座標系([0, 1]^2)からスクリーン座標系([0, 1]^2)への変換。両座標系ともxが右、yが下、原点が左上。

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)

パラメーター

名前 説明
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
imageCoordinates Vec2F

戻り値

説明
Vec2F

imageCoordinatesFromScreenCoordinates

スクリーン座標系([0, 1]^2)から画像座標系([0, 1]^2)への変換。両座標系ともxが右、yが下、原点が左上。

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)

パラメーター

名前 説明
viewportAspectRatio Single
screenRotation Int32
combiningFlip Boolean
manualHorizontalFlip Boolean
screenCoordinates Vec2F

戻り値

説明
Vec2F

equalsTo

2つのパラメータセットが等しいかどうかを判断する。

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)

パラメーター

名前 説明
other CameraParameters

戻り値

説明
Boolean