2

行列とその転置を乗算する必要がありますが、次のエラーが発生します。

"OpenCVエラー:アサーションに失敗しました(type == B.type()&&(type == CV_32FC1 || type == CV_64FC1 || type == CV_32FC2 || type == CV_64FC2))不明な関数、ファイル...。 .. \ src \ opencv \ modules \ core \ src \ matmul.cpp、行711 "

コードは次のとおりです。

int dA[] = {
     1,     2,     3,
     4,     5,     6,
     6,     5,     4,
    }; 
Mat A = Mat(3,3, CV_32S, dA );
Mat C = A.t()* A;
4

1 に答える 1

8

OpenCVは、浮動小数点の実数型または複素数型の行列の行列乗算のみをサポートします。

符号付き整数型の行列を作成しています。

サポートされているタイプは次のとおりです。

CV_32FC1 //real float
CV_32FC2 //complex float
CV_64FC1 //real double
CV_64FC2 //complex double

次の同様のコードが機能します。

float dA[] = {
     1,     2,     3,
     4,     5,     6,
     6,     5,     4,
    }; 
Mat A = Mat(3,3, CV_32F, dA );
Mat C = A.t()* A;
于 2013-02-10T08:13:37.027 に答える