gpt4 book ai didi

c++ - 手动初始化 cv::Matx?

转载 作者:太空宇宙 更新时间:2023-11-03 22:49:22 25 4
gpt4 key购买 nike

我有一些相机校准数据,格式如下:

  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.
}

...但它给出了上面的错误。我在这里犯了什么错误?

谢谢。

最佳答案

在 main 中,您必须使用特定类型的 Matx。为了您的目的,它是 float 的或 double 的。替换 cv::Matx<T, 4, 4>cv::Matx<double, 4, 4>并删除 template<typename T>在主要。

关于c++ - 手动初始化 cv::Matx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41861453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com