Table of Contents

Class CameraParameters

名前空間
easyar
アセンブリ
EasyAR.Sense.dll

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

public class CameraParameters : RefBase, IDisposable
継承
CameraParameters
実装
継承されたメンバー

コンストラクター

CameraParameters(Vec2I, Vec2F, Vec2F, CameraDeviceType, int)

public CameraParameters(Vec2I imageSize, Vec2F focalLength, Vec2F principalPoint, CameraDeviceType cameraDeviceType, int cameraOrientation)

パラメーター

imageSize
focalLength
principalPoint
cameraDeviceType
cameraOrientation

メソッド

Clone()

public CameraParameters Clone()

CloneObject()

protected override object CloneObject()

cameraDeviceType()

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

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

カメラモデル。

public virtual CameraModelType cameraModelType()

cameraOrientation()

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

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

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

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

パラメーター

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

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

public virtual bool equalsTo(CameraParameters other)

パラメーター

other

focalLength()

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

public virtual Vec2F focalLength()

getResized(Vec2I)

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

public virtual CameraParameters getResized(Vec2I imageSize)

パラメーター

imageSize

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

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

public virtual Vec2F imageCoordinatesFromScreenCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F screenCoordinates)

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
screenCoordinates

imageHorizontalFlip(bool)

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

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

パラメーター

manualHorizontalFlip

imageOrientation(int)

画像をスクリーンに対して時計回りに回転させてスクリーンに合わせるために必要な角度を計算する。 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

public virtual int imageOrientation(int screenRotation)

パラメーター

screenRotation

imageProjection(float, int, bool, bool)

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

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

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

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

public virtual Vec2F principalPoint()

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

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

public virtual Matrix44F projection(float nearPlane, float farPlane, float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip)

パラメーター

nearPlane
farPlane
viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

screenCoordinatesFromImageCoordinates(float, int, bool, bool, Vec2F)

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

public virtual Vec2F screenCoordinatesFromImageCoordinates(float viewportAspectRatio, int screenRotation, bool combiningFlip, bool manualHorizontalFlip, Vec2F imageCoordinates)

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
imageCoordinates

size()

画像サイズ。

public virtual Vec2I size()

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

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

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

パラメーター

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation