1
私はこの形式では、いくつかのカメラキャリブレーションデータを持っている:cv :: Matxを手動で初期化しますか?
0.3072423 -0.0104122 -0.9515744 -208.5614
0.003617216 0.9999457 -0.009773563 -4.705516
0.9516244 -0.0004391983 0.3072633 -152.5427
0 0 0 1
私は、引数としてconst cv::Matx<T, 4, 4>& M
を取る機能があります。 (サードパーティ製のコードから)
template<typename T>
cv::Matx<T, 6, 1> hom2cayley(const cv::Matx<T, 4, 4>& M)
{
cv::Matx<T, 3, 3> R(M(0, 0), M(0, 1), M(0, 2),
M(1, 0), M(1, 1), M(1, 2),
M(2, 0), M(2, 1), M(2, 2));
cv::Matx<T, 3, 1> C = rot2cayley(R);
return cv::Matx<T, 6, 1>(C(0, 0), C(1, 0), C(2, 0),
M(0, 3), M(1, 3), M(2, 3));
}
申し訳ありませんが、これは愚かな質問ですが、私は、関数に渡すことができるようにどのように私は手動で、上記の値とMatx
を記入しない場合は?
私が持っている:
void main()
{
template<typename T>
const cv::Matx<T, 4, 4> camData{ 0.3072423, - 0.0104122, - 0.9515744, - 208.5614,
0.003617216, 0.9999457, - 0.009773563, - 4.705516,
0.9516244, - 0.0004391983, 0.3072633, - 152.5427,
0 , 0 , 0 , 1 };
hom2cayley(camData); //invalid argument, camData is undefined.
}
...しかし、それは、上記のエラーが発生します。私の間違いは何ですか?
ありがとうございます。
私は見る!ありがとうございました。 – anti