|
OpenCV 4.5.3(日本語機械翻訳)
|
#include <quaternion.hpp>
公開メンバ関数 |
|
| Quat (const Vec< _Tp, 4 > &coeff) | |
| Vec4dまたはVec4fから。 |
|
| Quat (_Tp w, _Tp x, _Tp y, _Tp z) | |
| 4つの数字から |
|
| _Tp | at (size_t index) const |
| 要素を取得する方法です。[【詳解】(英語]
|
|
| Quat< _Tp > | conjugate () const |
| この四元数の共役を返します。[【詳解】(英語]
|
|
| Quat< _Tp > | exp () const |
| の指数値を返します。[【詳解】(英語]
|
|
| Quat< _Tp > | log (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| は、対数関数の値を返します。[【詳解】(英語]
|
|
| Quat< _Tp > | power (const _Tp x, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
累乗関数の値を指数で返します。 .[【詳解】(英語]
|
|
| Quat< _Tp > | sqrt (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
リターン .[【詳解】(英語]
|
|
| Quat< _Tp > | power (const Quat< _Tp > &q, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
四元数を用いたべき乗関数の値を返す .[【詳解】(英語]
|
|
| Quat< _Tp > | crossProduct (const Quat< _Tp > &q) const |
の間のクロスプロダクトを返します。 および .[【詳解】(英語]
|
|
| _Tp | norm () const |
| quaternionのノルムを返します。[【詳解】(英語]
|
|
| Quat< _Tp > | normalize () const |
正規化された .[【詳解】(英語]
|
|
| Quat< _Tp > | inv (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
リターン の逆数である を満たします。 .[【詳解】(英語]
|
|
| Quat< _Tp > | sinh () const |
return sinh このクォータニオンの値、sinhは次のように計算できます。 ここで
[【詳解】(英語]
|
|
| Quat< _Tp > | cosh () const |
| return cosh この四元数の値、coshは次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | tanh () const |
| return tanh このクォータニオンの値、tanhは次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | sin () const |
| return sin この四元数の値、sinは次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | cos () const |
| return cos この四元数の値、cosは次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | tan () const |
| return tan このクォータニオンの値、tanは次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | asin () const |
| Return arcsin この四元数の値、arcsin は次のように計算されます。[【詳解】(英語]
|
|
| Quat< _Tp > | acos () const |
| return arccos このクォータニオンの値,arccosは次のように計算できる.[【詳解】(英語]
|
|
| Quat< _Tp > | atan () const |
| このクォータニオンのarctan値を返す。arctanは次のように計算できる。[【詳解】(英語]
|
|
| Quat< _Tp > | asinh () const |
| Return arcsinh このクォータニオンの値、arcsinh は次のように計算できます。[【詳解】(英語]
|
|
| Quat< _Tp > | acosh () const |
| return arccosh このクォータニオンの値、arccoshは次のように計算できる。[【詳解】(英語]
|
|
| Quat< _Tp > | atanh () const |
| return arctanh このクォータニオンの値、arctanhは次のように計算できます。[【詳解】(英語]
|
|
| bool | isNormal (_Tp eps=CV_QUAT_EPS) const |
| このクォータニオンが単位クォータニオンであれば真を返します。[【詳解】(英語]
|
|
| void | assertNormal (_Tp eps=CV_QUAT_EPS) const |
| は、この四元数が単位四元数でない場合にエラーを発生させます。[【詳解】(英語]
|
|
| Matx< _Tp, 3, 3 > | toRotMat3x3 (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| 四元演算子を 3x3 回転行列に変換します。[【詳解】(英語]
|
|
| Matx< _Tp, 4, 4 > | toRotMat4x4 (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| は、四元数を4x4の回転行列に変換します。[【詳解】(英語]
|
|
| Vec< _Tp, 4 > | toVec () const |
| このquaternionをVec<T, 4>に変換します。[【詳解】(英語]
|
|
| Vec< _Tp, 3 > | toRotVec (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| この四元演算子を回転ベクトルに変換します。[【詳解】(英語]
|
|
| _Tp | getAngle (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| quaternionの角度を取得すると、回転角度を返します。[【詳解】(英語]
|
|
| Vec< _Tp, 3 > | getAxis (QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) const |
| クォータニオンの軸を取得すると、長さ3のベクトルが返されます。[【詳解】(英語]
|
|
| _Tp | dot (Quat< _Tp > q) const |
四元数とこの四元数の間のドットを返します。 とこの四元演算子の間のドットを返します。[【詳解】(英語]
|
|
| Quat< _Tp > | operator- () const |
反対側の四元数を返します。 を満足する反対側の二元四元演算子
[【詳解】(英語]
|
|
| bool | operator== (const Quat< _Tp > &) const |
2つのクォータニオン p と q がほぼ等しい場合,つまり,それぞれの絶対値が CV_QUAT_P よりも小さい場合,true を返します. および が CV_QUAT_EPS よりも小さい場合に真を返します. |
|
| Quat< _Tp > | operator+ (const Quat< _Tp > &) const |
2つの四元数pとqの加算演算子。それぞれの値が以下の合計である新しい四元数を返します。 および .[【詳解】(英語]
|
|
| Quat< _Tp > & | operator+= (const Quat< _Tp > &) |
| 2つの四元数p,qの加算代入演算子です。右オペランドと左オペランドを加算し、その結果を左オペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > | operator- (const Quat< _Tp > &) const |
2つの四元数pとqの減算演算子です。それぞれの値が、以下の合計である新しい四元数を返します。 および .[【詳解】(英語]
|
|
| Quat< _Tp > & | operator-= (const Quat< _Tp > &) |
| 2つの四元数p,qの減算代入演算子です。左のオペランドから右のオペランドを引き、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > & | operator*= (const Quat< _Tp > &) |
| 2つの四元数qとpの乗算代入演算子。右のオペランドと左のオペランドを乗算し、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > & | operator*= (const _Tp s) |
| 四元数とスカラーの乗算代入演算子。右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > | operator* (const Quat< _Tp > &) const |
| 2つの四元数qとpの乗算演算子。演算子の両側の値を乗算します。[【詳解】(英語]
|
|
| Quat< _Tp > | operator/ (const _Tp s) const |
| 四元数とスカラの除算演算子です。四元数とスカラの除算演算子で、左オペランドを右オペランドで除算し、結果を左オペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > | operator/ (const Quat< _Tp > &) const |
| 2つの四元数pとqの除算演算子。左手のオペランドを右手のオペランドで除算します。[【詳解】(英語]
|
|
| Quat< _Tp > & | operator/= (const _Tp s) |
| 四元数とスカラの分割代入演算子です。左のオペランドを右のオペランドで除算し、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| Quat< _Tp > & | operator/= (const Quat< _Tp > &) |
| 2つの四元数p,qの除算代入演算子;左オペランドを右オペランドで除算し、結果を左オペランドに代入します。[【詳解】(英語]
|
|
| _Tp & | operator[] (std::size_t n) |
| const _Tp & | operator[] (std::size_t n) const |
| Vec< _Tp, 3 > | toEulerAngles (QuatEnum::EulerAnglesType eulerAnglesType) |
| 四元演算子qをオイラー角に変換します。[【詳解】(英語]
|
|
静的公開メンバ関数 |
|
| static Quat< _Tp > | createFromAngleAxis (const _Tp angle, const Vec< _Tp, 3 > &axis) |
| 角度から、axis。この関数では、軸は正規化されます。そして、それは[【詳解】(英語]
|
|
| static Quat< _Tp > | createFromRotMat (InputArray R) |
| 3x3 の回転行列から |
|
| static Quat< _Tp > | createFromRvec (InputArray rvec) |
回転ベクトルから は次のような形をしています。 ここで は回転角を, は正規化された回転軸を表します。[【詳解】(英語]
|
|
| static Quat< _Tp > | createFromEulerAngles (const Vec< _Tp, 3 > &angles, QuatEnum::EulerAnglesType eulerAnglesType) |
| オイラー角から[【詳解】(英語]
|
|
| static Quat< _Tp > | createFromYRot (const _Tp theta) |
Y軸を中心とした回転による四元数を次のように求めます。 .[【詳解】(英語]
|
|
| static Quat< _Tp > | createFromXRot (const _Tp theta) |
X軸を中心とした回転から、次のようにして四元数を求めます。 .[【詳解】(英語]
|
|
| static Quat< _Tp > | createFromZRot (const _Tp theta) |
Z軸を中心とした回転による四元数を次の式で得る。 .[【詳解】(英語]
|
|
| static Quat< _Tp > | lerp (const Quat< _Tp > &q0, const Quat &q1, const _Tp t) |
からの補間を計算するには から by Linear Interpolation(Nlerp) 2つのクォータニオンの場合、この補間曲線は次のように表示されます。[【詳解】(英語]
|
|
| static Quat< _Tp > | nlerp (const Quat< _Tp > &q0, const Quat &q1, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
からの補間を計算するには から 正規化線形補間(Nlerp)では,線形補間(Lerp)の正規化された四元数を返します.[【詳解】(英語]
|
|
| static Quat< _Tp > | slerp (const Quat< _Tp > &q0, const Quat &q1, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT, bool directChange=true) |
の補間を計算するには および との間の補間を球形線形補間(Slerp)で計算しますが、これは次のように定義できます。[【詳解】(英語]
|
|
| static Quat< _Tp > | squad (const Quat< _Tp > &q0, const Quat< _Tp > &s0, const Quat< _Tp > &s1, const Quat< _Tp > &q1, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT, bool directChange=true) |
の補間を計算するには , , , 球形と四角形(Squadrangle)によるもの。と定義することができる。[【詳解】(英語]
|
|
| static Quat< _Tp > | interPoint (const Quat< _Tp > &q0, const Quat< _Tp > &q1, const Quat< _Tp > &q2, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
これが四元数の計算の一部です。媒介となる四元数の計算は 3つのクォータニオンの間の[【詳解】(英語]
|
|
| static Quat< _Tp > | spline (const Quat< _Tp > &q0, const Quat< _Tp > &q1, const Quat< _Tp > &q2, const Quat< _Tp > &q3, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
の結果であるクォータニオンを計算する。 ここでは補間値として,比率tでスクワッドによって構成された連続スプライン曲線 および . および が使用され、連続性が確保されます。 t = 0の場合は を返し、t = 1の場合は .[【詳解】(英語]
|
|
公開変数類 |
|
| _Tp | w |
| _Tp | x |
| _Tp | y |
| _Tp | z |
静的公開変数類 |
|
| static constexpr _Tp | CV_QUAT_EPS = (_Tp)1.e-6 |
| static constexpr _Tp | CV_QUAT_CONVERT_THRESHOLD = (_Tp)1.e-6 |
フレンド |
|
| template<typename T > | |
| Quat< T > | exp (const Quat< T > &q) |
| の指数値を返します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | log (const Quat< T > &q, QuatAssumeType assumeUnit) |
| は、対数関数の値を返します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | power (const Quat< T > &q, const T x, QuatAssumeType assumeUnit) |
累乗関数の値を指数で返します。 .[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | sqrt (const Quat< T > &q, QuatAssumeType assumeUnit) |
リターン .[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | power (const Quat< T > &p, const Quat< T > &q, QuatAssumeType assumeUnit) |
四元数を用いたべき乗関数の値を返す .[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | crossProduct (const Quat< T > &p, const Quat< T > &q) |
の間のクロスプロダクトを返します。 および .[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | inv (const Quat< T > &q, QuatAssumeType assumeUnit) |
リターン の逆数である を満足する反対側の二元四元演算子 .[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | sinh (const Quat< T > &q) |
| return sinh 四元演算子qの値、sinhは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cosh (const Quat< T > &q) |
| return cosh 四元演算子qの値、coshは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | tanh (const Quat< T > &q) |
| return tanh 四元演算子 q の値, tanh は次のように計算できます.[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | sin (const Quat< T > &q) |
| quaternion qのtanh値を返します。sinは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cos (const Quat< T > &q) |
| return sin 四元数 q の値, cos 次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | tan (const Quat< T > &q) |
| return tan 四元演算子qの値、tanは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | asin (const Quat< T > &q) |
| quaternion qのarcsin値を返し、arcsinは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | acos (const Quat< T > &q) |
| quaternion qのarccos値を返します。arccosは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | atan (const Quat< T > &q) |
| return arctan 四元数 q の値, arctan は次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | asinh (const Quat< T > &q) |
| quaternion qのarcsinhの値を返してください。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | acosh (const Quat< T > &q) |
| quaternion qのarccosh値を返す。arccoshは次のように計算できる。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | atanh (const Quat< T > &q) |
| quaternion qのarctanh値を返し、arctanhは次のように計算できます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator- (const T s, const Quat< T > &) |
| スカラーと四元数の減算演算子です。左手のオペランドから右手のオペランドを減算します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator- (const Quat< T > &, const T s) |
| 四元数とスカラの減算演算子です。右手のオペランドを左手のオペランドから引きます。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator+ (const T s, const Quat< T > &) |
| 四元数とスカラの加算演算子です。左手のオペランドから右手のオペランドを加算します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator+ (const Quat< T > &, const T s) |
| 四元数とスカラの加算演算子です。左手のオペランドから右手のオペランドを加算します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator* (const T s, const Quat< T > &) |
| スカラーとクォータニオンの乗算演算子。スカラーと四元数の乗算演算子で、右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| template<typename T > | |
| Quat< T > | cv::operator* (const Quat< T > &, const T s) |
| 四元数とスカラーの乗算演算子です。右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。[【詳解】(英語]
|
|
| template<typename S > | |
| std::ostream & | cv::operator<< (std::ostream &, const Quat< S > &) |
Quaternion は,複素数を拡張した数系です.これは,3次元空間における回転として表現することができます.クォータニオンは,一般に次のような形式で表されます.
ここで
,
は回転角を表す。
は正規化された回転軸、そして
のノルムを表す。
.
単位四元数は、通常、回転を表すもので、次のような形をしています。
軸周りの回転を表す四元数を作成するには
角度
の軸周りの回転を表す四元数を作るには、次のようにします。
同じ型の数値を4つ使って、単純にクォータニオンを作成することもできます。
または、Vec4dまたはVec4fのベクトルを使用します。
3x3の回転行列Rがすでにある場合は、次のようにします。
の形をした回転ベクトルrvecがすでにある場合はangle * axisを使うことができます。
クォータニオンから回転行列を抽出するには、以下を参照してください。toRotMat3x3()
Vec4d または Vec4f を抽出するには、以下を参照してください。toVec()
回転ベクトルを抽出するには、以下を参照してください。toRotVec()
もし、2つのクォータニオン
が必要な場合は、次のように補間します。nlerp(),slerp()またはspline()
スプラインは、複数のクォータニオンの回転を滑らかに接続することができます。
クォータニオンの要素を取得する3つの方法
return arccos このクォータニオンの値,arccosは次のように計算できる.
ここで
例えば
return arccosh このクォータニオンの値、arccoshは次のように計算できる。
.
例えば
Return arcsin この四元数の値、arcsin は次のように計算されます。
ここで
例えば
Return arcsinh このクォータニオンの値、arcsinh は次のように計算できます。
.
例えば
| void cv::Quat< _Tp >::assertNormal | ( | _Tp |
eps
=
CV_QUAT_EPS
|
) | const |
| _Tp cv::Quat< _Tp >::at | ( | size_t | index | ) | const |
要素を取得する方法です。
| index | 範囲[0, 3]での値。 |
四元演算子 q
q.at(0)はq.w.と等価である。
q.at(1)はq.xと同じである。
q.at(2)はq.yと等価である。
q.at(3)はq.zに相当する。
このクォータニオンのarctan値を返す。arctanは次のように計算できる。
ここで
例えば
return arctanh このクォータニオンの値、arctanhは次のように計算できます。
.
例えば
return cos この四元数の値、cosは次のように計算できます。
ここで
例えば
return cosh この四元数の値、coshは次のように計算できます。
ここで
例えば
|
static |
角度から、axis。この関数では、軸は正規化されます。そして、それは
ここで
,
は回転角度です。
|
static |
オイラー角から
オイラー回転の四元数表現を組み合わせることで、オイラー角から四元数を生成することができます。
例えば、X-Y-Zの順に固有の回転を使用する場合。
はX軸周りの回転。
はY軸周りの回転。
はZ軸周りの回転です。最終的なクォータニオンqは次のように計算できます。
ここで
は次のものから作られます。createFromXRot,
は次のものから作られます。createFromYRot,
は次のものから作られます。createFromZRot.
| angles | 長さ3のベクトルに含まれるオイラー角 |
| eulerAnglesType | 変換されたオイラー角のタイプ |
|
static |
回転ベクトルから
は次のような形をしています。
ここで
は回転角を,
は正規化された回転軸を表します。
角度と軸は次のように簡単に導き出せます。
四元数は次のようにして求められます。
ここで
|
static |
X軸を中心とした回転から、次のようにして四元数を求めます。
.
|
static |
Y軸を中心とした回転による四元数を次のように求めます。
.
|
static |
Z軸を中心とした回転による四元数を次の式で得る。
.
の間のクロスプロダクトを返します。
および
.
例えば
四元数とこの四元数の間のドットを返します。
とこの四元演算子の間のドットを返します。
dot(p, q)はquaternionがどれだけ近いかを示す良い指標です。実際,単位四元数の差を考えてみましょう。
を考えると、その実部はdot(p, q)です。同時に、その実部は次のようになります。
ここで
はpとqの間の回転角、つまりdot(p, q)が1に近いほど、両者の間の回転が小さいことを意味します。
| q | もう一方のクォータニオンである |
例えば
の指数値を返します。
ここで
例えば
| _Tp cv::Quat< _Tp >::getAngle | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
quaternionの角度を取得すると、回転角度を返します。
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。
|
例えば
.| Vec< _Tp, 3 > cv::Quat< _Tp >::getAxis | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
クォータニオンの軸を取得すると、長さ3のベクトルが返されます。
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
単位軸
で定義されます。
ここで
および
は回転角を表します。
例えば
|
static |
これが四元数の計算の一部です。媒介となる四元数の計算は
3つのクォータニオンの間の
| q0 | 第1クオータニオン |
| q1 | 第2の四元演算子 |
| q2 | 3つ目のクォータニオン |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、すべての入力四元数は単位四元数であるとみなされます。そうでない場合は、すべての入力クォータニオンが関数内で正規化されます。 |
| Quat< _Tp > cv::Quat< _Tp >::inv | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
リターン
の逆数である
を満たします。
.
| assumeUnit | QUAT_ASSUME_UNITの場合、quaternion qは単位quaternionであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
| bool cv::Quat< _Tp >::isNormal | ( | _Tp |
eps
=
CV_QUAT_EPS
|
) | const |
このクォータニオンが単位クォータニオンであれば真を返します。
| eps | 正規化の許容範囲。epsは次のように定義できます。 |
ここで
そして,この関数は,dotValueがある範囲を超えたときに正規化されたとみなします。
.
|
static |
からの補間を計算するには
から
by Linear Interpolation(Nlerp) 2つのクォータニオンの場合、この補間曲線は次のように表示されます。
を2次元のベクトルと考えれば、明らかにLERPは直線に沿って補間することになります。
および
を2次元空間のベクトルと考えれば、明らかにLERPは直線に沿って補間される。このとき
のときは
を返し、いつ
のときは
.
で範囲指定されるはずです。
通常は
| q0 | は,線形補間に使用される四元数です. |
| q1 | は,線形補間に使用される四元数です. |
| t | ベクトルのパーセンテージ は、範囲 [0, 1] のベクトルのパーセントを返します。 |
| Quat< _Tp > cv::Quat< _Tp >::log | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
は、対数関数の値を返します。
となります。
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
|
static |
からの補間を計算するには
から
正規化線形補間(Nlerp)では,線形補間(Lerp)の正規化された四元数を返します.
この補間は常に最短経路を選択しますが、一定の速度は保証されません。
| q0 | 正規化された線形補間で使用されるクォータニオンです。 |
| q1 | 正規化された線形補間で使用されるクォータニオンです。 |
| t | ベクトルのパーセンテージ は、範囲 [0, 1] のベクトルのパーセントを返します。 |
| assumeUnit | QUAT_ASSUME_UNITの場合、すべての入力四元数は単位四元数であると仮定します。そうでない場合、すべての入力四元数は、この関数内で正規化されます。 |
| _Tp cv::Quat< _Tp >::norm | ( | ) | const |
quaternionのノルムを返します。
2つの四元数qとpの乗算演算子。演算子の両側の値を乗算します。
四元数の乗算のルール。
ここで
は点積を意味します。
はクロスプロダクトを意味します。
例えば
四元数とスカラーの乗算代入演算子。右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。
スカラーを使った四元数の乗算のルール。
例えば
2つの四元数qとpの乗算代入演算子。右のオペランドと左のオペランドを乗算し、その結果を左のオペランドに代入します。
四元数の乗算のルール。
ここで
は点積を意味します。
はクロスプロダクトを意味します。
例えば
2つの四元数pとqの加算演算子。それぞれの値が以下の合計である新しい四元数を返します。
および
.
例えば
2つの四元数p,qの加算代入演算子です。右オペランドと左オペランドを加算し、その結果を左オペランドに代入します。
例えば
反対側の四元数を返します。
を満足する反対側の二元四元演算子
例えば
2つの四元数pとqの減算演算子です。それぞれの値が、以下の合計である新しい四元数を返します。
および
.
例えば
2つの四元数p,qの減算代入演算子です。左のオペランドから右のオペランドを引き、その結果を左のオペランドに代入します。
例えば
四元数とスカラの除算演算子です。四元数とスカラの除算演算子で、左オペランドを右オペランドで除算し、結果を左オペランドに代入します。
スカラーを用いた四元数の除算のルール。
例えば
2つの四元数pとqの除算演算子。左手のオペランドを右手のオペランドで除算します。
スカラーを用いた四元数の除算のルール。
例えば
四元数とスカラの分割代入演算子です。左のオペランドを右のオペランドで除算し、その結果を左のオペランドに代入します。
スカラーを用いた四元数の除算のルール。
例えば
2つの四元数p,qの除算代入演算子;左オペランドを右オペランドで除算し、結果を左オペランドに代入します。
四元数を用いた四元数の除算の規則。
例えば
| Quat< _Tp > cv::Quat< _Tp >::power | ( | const _Tp | x, |
| QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
||
| ) | const |
累乗関数の値を指数で返します。
.
| x | 累乗の指数 |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
| Quat< _Tp > cv::Quat< _Tp >::power | ( | const Quat< _Tp > & | q, |
| QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
||
| ) | const |
四元数を用いたべき乗関数の値を返す
.
| q | 累乗関数の四元数のインデックス。 |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
return sin この四元数の値、sinは次のように計算できます。
ここで
例えば
return sinh このクォータニオンの値、sinhは次のように計算できます。
ここで
例えば
|
static |
の補間を計算するには
および
との間の補間を球形線形補間(Slerp)で計算しますが、これは次のように定義できます。
ここで
は次のように計算できます。
両者のノルムが単位であることから、次のように計算できます。
| q0 | は、Slerpで使用される四元数です。 |
| q1 | は、Slerpで使用される四元数です。 |
| t | の間の角度の割合 および は、範囲 [0, 1] のベクトルのパーセントを返します。 |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、入力されたすべての四元数は単位四元数であるとみなされます。そうでない場合、すべての入力クォータニオンは関数内で正規化されます。 |
| directChange | QUAT_ASSUME_UNITの場合,補間は最も近い経路を選択します. |
|
static |
の結果であるクォータニオンを計算する。
ここでは補間値として,比率tでスクワッドによって構成された連続スプライン曲線
および
.
および
が使用され、連続性が確保されます。
t = 0の場合は
を返し、t = 1の場合は
.
| q0 | を返し、連続性を確保します。 連続性を確保します。 |
| q1 | 2番目の入力四元数。 |
| q2 | 3番目の入力四元数。 |
| q3 | 4番目の入力四元数。 . |
| t | 比率を範囲[0, 1]で指定します。 |
| assumeUnit | if QUAT_ASSUME_UNIT, 単位四元数であると仮定します。それ以外の場合は、すべての入力四元数が関数内で正規化されます。 |
例えば、以下のようになります。
補間されるべき3つのダブルクォータニオンがある場合
がある場合は、補間されるのを待ちます。
の間を補間します。
および
との間の補間は,比率
は次のように計算できます。
の間を補間します。
および
との間の補間は,比率
は次のように計算できます。
| Quat< _Tp > cv::Quat< _Tp >::sqrt | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
リターン
.
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
|
static |
の補間を計算するには
,
,
,
球形と四角形(Squadrangle)によるもの。と定義することができる。
ここで
Squadの表現は
曲線に似ていますが、単純な線形補間ではなく、球形の線形補間を行います。それぞれの
は3つの四元数で計算する必要があります。
| q0 | 第1クオータニオン |
| s0 | 第2の四元演算子 |
| s1 | 3つ目のクォータニオン |
| q1 | thr 4つ目のクォータニオン。 |
| t | 範囲内での二次補間および線形補間の補間パラメータ . |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、すべての入力四元数は単位四元数であるとみなされます。そうでない場合は、すべての入力クォータニオンが関数内で正規化されます。 |
| directChange | QUAT_ASSUME_UNITの場合、squadは最も近い経路を探して補間を行います。 |
return tan このクォータニオンの値、tanは次のように計算できます。
例えば
| Vec< _Tp, 3 > cv::Quat< _Tp >::toEulerAngles | ( | QuatEnum::EulerAnglesType | eulerAnglesType | ) |
四元演算子qをオイラー角に変換します。
四元演算子qをオイラー角に変換する場合
をオイラー角に変換する場合、回転行列Mは次のように計算できます。
一方、回転行列はオイラー角から求めることができます。オイラー角型のXYZを例にして、固有の回転を用います。
,
,
はオイラー角の3つの角度で、回転行列Rは次のように計算できます。
回転行列MとRは等しい。以上のように
である限り、2つの行列の各要素を比較すれば、次のように解けます。
.
となります。
または
となると、ジンバルロックが発生します。WARNING: Gimbal Lock will occur." と表示されます。オイラー角は一意ではありません。内旋の場合は3つ目の角度を0に、外旋の場合は1つ目の角度を0にします」と表示されます。
となります。
, 回転行列Rは
.
という条件で、解の数は無限大になります。
.
と設定します。
とすると、解は
.
となります。
, 回転行列Rは
.
という条件で、解の数は無限大になります。
.
と設定します。
とすると、解は
.
となります。
および
であるため,正規化されていない四元数は計算上の問題を引き起こします。そのため,この関数では,最初に四元数を正規化してしまいQuatAssumeTypeは必要ありません。
ジンバルロックが発生したときには
内側の回転には
を設定します。
その結果、オイラー角の種類ごとに、以下の表のような解が得られます。
| オイラー角タイプ | 通常 |
|
|
|---|---|---|---|
| INT_XYZ |
|
|
|
| INT_XZY |
|
|
|
| INT_YXZ |
|
|
|
| INT_YZX |
|
|
|
| INT_ZXY |
|
|
|
| INT_ZYX |
|
|
|
| EXT_XYZ |
|
|
|
| EXT_XZY |
|
|
|
| EXT_YXZ |
|
|
|
| EXT_YZX |
|
|
|
| EXT_ZXY |
|
|
|
| EXT_ZYX |
|
|
|
| オイラー角タイプ | 通常 |
|
|
|---|---|---|---|
| INT_XYX |
|
|
|
| INT_XZX |
|
|
|
| INT_YXY |
|
|
|
| INT_YZY |
|
|
|
| INT_ZXZ |
|
|
|
| INT_ZYZ |
|
|
|
| EXT_XYX |
|
|
|
| EXT_XZX |
|
|
|
| EXT_YXY |
|
|
|
| EXT_YZY |
|
|
|
| EXT_ZXZ |
|
|
|
| EXT_ZYZ |
|
|
|
| eulerAnglesType | 変換されたオイラー角のタイプ |
| Matx< _Tp, 3, 3 > cv::Quat< _Tp >::toRotMat3x3 | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
四元演算子を 3x3 回転行列に変換します。
| assumeUnit | QUAT_ASSUME_UNIT が指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を行います。そうでない場合,この関数はまずこの四元数を正規化してから変換を行います. |
例えば
| Matx< _Tp, 4, 4 > cv::Quat< _Tp >::toRotMat4x4 | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
は、四元数を4x4の回転行列に変換します。
| assumeUnit | QUAT_ASSUME_UNIT が指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を行います。そうでない場合,この関数はまずこの四元数を正規化してから変換を行います. |
この操作は RotMat3x3 と同様ですが,点群が次のような形式であることが必要です
| Vec< _Tp, 3 > cv::Quat< _Tp >::toRotVec | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
この四元演算子を回転ベクトルに変換します。
| assumeUnit | QUAT_ASSUME_UNIT の場合,このクォータニオンは単位クォータニオンであるとみなされ,この関数はいくつかの計算を節約します.回転ベクトルrVecは次のように定義されます。
は回転角度を表し は正規化された回転軸を表します。 |
例えば
このquaternionをVec<T, 4>に変換します。
例えば
quaternion qのarccos値を返します。arccosは次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
quaternion qのarccosh値を返す。arccoshは次のように計算できる。
.
| q | 四元演算子。 |
例えば
quaternion qのarcsin値を返し、arcsinは次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
quaternion qのarcsinhの値を返してください。
.
| q | 四元演算子。 |
例えば
return arctan 四元数 q の値, arctan は次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
quaternion qのarctanh値を返し、arctanhは次のように計算できます。
.
| q | 四元演算子。 |
例えば
return sin 四元数 q の値, cos 次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
return cosh 四元演算子qの値、coshは次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
|
friend |
の間のクロスプロダクトを返します。
および
.
例えば
|
friend |
四元数とスカラーの乗算演算子です。右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。
スカラーを使った四元数の乗算のルール。
例えば
|
friend |
スカラーとクォータニオンの乗算演算子。スカラーと四元数の乗算演算子で、右のオペランドと左のオペランドを掛け合わせ、その結果を左のオペランドに代入します。
スカラーを使った四元数の乗算のルール。
例えば
|
friend |
四元数とスカラの加算演算子です。左手のオペランドから右手のオペランドを加算します。
例えば
|
friend |
四元数とスカラの加算演算子です。左手のオペランドから右手のオペランドを加算します。
例えば
|
friend |
四元数とスカラの減算演算子です。右手のオペランドを左手のオペランドから引きます。
例えば
|
friend |
スカラーと四元数の減算演算子です。左手のオペランドから右手のオペランドを減算します。
例えば
|
friend |
リターン
の逆数である
を満足する反対側の二元四元演算子
.
| q | 四元演算子。 |
| assumeUnit | QUAT_ASSUME_UNITの場合、quaternion qは単位quaternionであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
|
friend |
は、対数関数の値を返します。
ここで
| q | 四元演算子。 |
| assumeUnit | QUAT_ASSUME_UNITが指定された場合、qは単位四元数であるとみなされ、この関数はいくつかの計算を行います。 |
例えば
|
friend |
四元数を用いたべき乗関数の値を返す
.
| p | べき乗関数の基底四元数です。 |
| q | 累乗関数の四元数のインデックス。 |
| assumeUnit | QUAT_ASSUME_UNITの場合、quaternion は単位四元数であるとみなし、この関数はいくつかの計算を節約します。 |
例えば
|
friend |
累乗関数の値を指数で返します。
.
| q | 四元演算子。 |
| x | 累乗の指数 |
| assumeUnit | QUAT_ASSUME_UNITの場合、quaternion qは単位quaternionであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
quaternion qのtanh値を返します。sinは次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
return sinh 四元演算子qの値、sinhは次のように計算できます。
ここで
| q | 四元演算子。 |
例えば
|
friend |
リターン
.
| q | 四元演算子。 |
| assumeUnit | QUAT_ASSUME_UNITの場合、quaternion qは単位quaternionであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
return tan 四元演算子qの値、tanは次のように計算できます。
| q | 四元演算子。 |
例えば
return tanh 四元演算子 q の値, tanh は次のように計算できます.
| q | 四元演算子。 |
例えば