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

Difference between cv::Mat::t () and cv::transpose()

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

使用cv::Mat::t():

cv::Mat a;
a = a.t();

使用cv::transpose():

cv::Mat a;
cv::transpose(a,a);

我对效率特别感兴趣。

没有区别。这是来自 opencv/modules/core/src/matop.cppcv::Mat::t() 的代码:

MatExpr MatExpr::t() const
{
    MatExpr e;
    op->transpose(*this, e);
    return e;
}

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