2017-04-09 36 views
0

これら2つのトランスポーズの間のopencvの違いは何ですか?cv :: Mat :: t t()とcv :: transpose()の違い

cv::Mat::t()の使用:cv::transpose()を使用して

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

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

私は効率について特に興味があります。

+0

1つはインプレースに見え、もう1つは別の出力に書き込まれます。 –

+0

@KerrekSBあなたのご意見ありがとうございます。最初の方が効率的だと言うのは正しいですか? – justHelloWorld

+1

私はそれが賢明な質問だとは思わない。 2つの関数は異なることを行います。それらのそれぞれは、それが何をしているのかと同じくらい効率的です。 –

答えて

1

違いはありません。ここでopencv/modules/core/src/matop.cppからcv::Mat::t()のためのコードは次のとおりです。

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

のでcv::Mat::t()がちょうどcv::transpose()を呼び出します。

関連する問題