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 を返します.![]() ![]() |
|
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) |
からの補間を計算するには![]() ![]() |
|
static Quat< _Tp > | nlerp (const Quat< _Tp > &q0, const Quat &q1, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
からの補間を計算するには![]() ![]() |
|
static Quat< _Tp > | slerp (const Quat< _Tp > &q0, const Quat &q1, const _Tp t, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT, bool directChange=true) |
の補間を計算するには![]() ![]() |
|
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) |
の補間を計算するには![]() ![]() ![]() ![]() |
|
static Quat< _Tp > | interPoint (const Quat< _Tp > &q0, const Quat< _Tp > &q1, const Quat< _Tp > &q2, QuatAssumeType assumeUnit=QUAT_ASSUME_NOT_UNIT) |
これが四元数の計算の一部です。媒介となる四元数の計算は![]() |
|
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) |
の結果であるクォータニオンを計算する。![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
公開変数類 |
|
_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 | ベクトルのパーセンテージ![]() |
Quat< _Tp > cv::Quat< _Tp >::log | ( | QuatAssumeType |
assumeUnit
=
QUAT_ASSUME_NOT_UNIT
|
) | const |
は、対数関数の値を返します。
となります。
assumeUnit | QUAT_ASSUME_UNITが指定された場合、このクォータニオンは単位クォータニオンであるとみなされ、この関数はいくつかの計算を節約します。 |
例えば
|
static |
からの補間を計算するにはから
正規化線形補間(Nlerp)では,線形補間(Lerp)の正規化された四元数を返します.
この補間は常に最短経路を選択しますが、一定の速度は保証されません。
q0 | 正規化された線形補間で使用されるクォータニオンです。 |
q1 | 正規化された線形補間で使用されるクォータニオンです。 |
t | ベクトルのパーセンテージ![]() |
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 | の間の角度の割合![]() ![]() |
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 | 四元演算子。 |
例えば