【问题标题】:how inverse an cv::Affine3d transformation如何逆 cv::Affine3d 变换
【发布时间】:2015-03-26 17:08:35
【问题描述】:

我使用的是 opencv 3.0。

我使用cv::Affine3d 声明如下:

cv::Vec3d om = ...;
cv::Vec3d T = ...;
cv::Affine3d aff(om, T);

然后我使用aff 将 X 转换为 Y,如下所示:

cv::Vec3d X;
cv::Vec3d Y = aff*X;

现在,我想进行逆变换将 Y 转换为 X?

【问题讨论】:

  • 这个 affine3d 类从何而来? google 只提供 Viz 模块,它可能用于可视化而不是计算。如果该类提供任何吸气剂,您可以从中创建一个垫子并反转该垫子。
  • 我使用 opencv 3.0 beta。此类在“opencv2/core/affine.hpp”中声明

标签: opencv affinetransform opencv3.0


【解决方案1】:

我认为

cv::Affine3d affInverse = aff.inv(); // Calls inv() on the internal matrix
                                     // and returns a new object from that.

cv::Vec3d xPrime = affInverse * Y;

成功了。有关详细信息,请参阅您提到的标题。

此外,documentation 应提供有关存储在Affine3d 中的Matx 的更多信息。

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 2020-02-03
    • 2019-01-20
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-05
    相关资源
    最近更新 更多