cv::Mat::t() 和 cv::transpose() 的区别

jus*_*rld 8 c++ opencv transpose matrix

这两个转置在opencv中有什么区别?

使用cv::Mat::t()

cv::Mat a;
a = a.t();
Run Code Online (Sandbox Code Playgroud)

使用cv::transpose()

cv::Mat a;
cv::transpose(a,a);
Run Code Online (Sandbox Code Playgroud)

我对效率特别感兴趣。

bea*_*ker 7

没有区别。这是cv::Mat::t()from的代码opencv/modules/core/src/matop.cpp

MatExpr MatExpr::t() const
{
    MatExpr e;
    op->transpose(*this, e);
    return e;
}
Run Code Online (Sandbox Code Playgroud)

所以cv::Mat::t()只需调用cv::transpose().