Table of Contents

Class CameraParameters

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

camera parameters。image サイズ、focal length、principal point、camera タイプ、および device natural orientation に対する 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()

cameraDeviceType()

camera device のタイプ。default camera、back camera、または front camera。デスクトップデバイスはすべて default camera で、モバイルデバイスでは back camera と front camera を区別します。

public virtual CameraDeviceType cameraDeviceType()

cameraModelType()

Camera model。

public virtual CameraModelType cameraModelType()

cameraOrientation()

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

public virtual int cameraOrientation()

createWithDefaultIntrinsics(Vec2I, CameraDeviceType, int)

default camera intrinsics で CameraParameters を作成します。default camera intrinsics (focal length と principal point) は image サイズから自動計算されますが、特に高精度ではありません。

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

パラメーター

imageSize
cameraDeviceType
cameraOrientation

equalsTo(CameraParameters)

2 組の parameters が等しいかどうかを判定します。

public virtual bool equalsTo(CameraParameters other)

パラメーター

other

focalLength()

Focal length。camera の等価 optical center から CCD 平面までの距離を、幅方向と高さ方向の unit pixel density で割った値です。単位はピクセルです。

public virtual Vec2F focalLength()

getResized(Vec2I)

camera image のサイズ変更後の等価な CameraParameters を取得します。

public virtual CameraParameters getResized(Vec2I imageSize)

パラメーター

imageSize

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

screen coordinate system ([0, 1]^2) から image coordinate system ([0, 1]^2) へ変換します。どちらの coordinate system でも x は右、y は下を向き、origin は左上隅です。

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

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
screenCoordinates

imageHorizontalFlip(bool)

image に horizontal flipping が必要かどうかを計算します。image のレンダリング時は、まず回転し、その後 flipping します。cameraDeviceType が front camera の場合は自動的に flipping されます。その上で manualHorizontalFlip を渡すと、さらに手動 flipping を 1 回重ねられます。

public virtual bool imageHorizontalFlip(bool manualHorizontalFlip)

パラメーター

manualHorizontalFlip

imageOrientation(int)

image を screen に合わせるため、screen に対して時計回りに回転する必要がある角度を計算します。 screenRotation は natural orientation に対する screen image の時計回り回転角です。 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)

camera background image のレンダリングに必要な orthographic projection matrix を計算し、image rectangle coordinate system ([-1, 1]^2) の点を clip coordinate system ([-1, 1]^4) へ変換します。z 軸周りの回転も含み、未定義の 2 次元は変化しません。orthographic projection matrix の形式は OpenGL と同じで、matrix の右側から点の同次座標を掛けます。Direct3D のように左側から掛ける形式ではありません。データは row-major 順に配置され、OpenGL の column-major とは逆です。clip coordinate system と normalized device coordinate system の定義は OpenGL のデフォルトと同じです。

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

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip

principalPoint()

Principal point。camera の principal optical axis が CCD 平面と交差する点から image 左上隅までのピクセル座標です。単位はピクセルです。

public virtual Vec2F principalPoint()

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

virtual objects のレンダリングに必要な perspective projection matrix を計算し、camera coordinate system の点を clip coordinate system ([-1, 1]^4) へ変換します。z 軸周りの回転も含みます。perspective projection matrix の形式は OpenGL と同じで、matrix の右側から点の同次座標 column vector を掛けます。Direct3D のように左側から掛ける形式ではありません。データは row-major 順に配置され、OpenGL の column-major とは逆です。clip coordinate system と normalized device coordinate system の定義は 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)

image coordinate system ([0, 1]^2) から screen coordinate system ([0, 1]^2) へ変換します。どちらの coordinate system でも x は右、y は下を向き、origin は左上隅です。

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

パラメーター

viewportAspectRatio
screenRotation
combiningFlip
manualHorizontalFlip
imageCoordinates

size()

image サイズ。

public virtual Vec2I size()

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

custom camera intrinsics で CameraParameters を作成します。camera intrinsics (focal length、principal point、distortion coefficients) と camera model を指定する必要があります。対応する camera model については CameraModelType を参照してください。 注意: このインターフェイスは慎重に使用してください。入力データが誤っていると、オブジェクト作成に失敗し empty が返る可能性があります。

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

パラメーター

imageSize
cameraParamList
cameraModel
cameraDeviceType
cameraOrientation