gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

OpenCVでの行列の掛け算の注意点

OpenCVの行列は、基本クラスのcv::Matと、それを継承した小クラスのcv::Mat_があります。前者はインスタンス生成時に型指定が出来ません。後者は、cv::Mat_のようにして、型指定ができます。

詳細はおっかけていないので結果論ですが、行列の掛け算をするとき、

cv::Mat a, b;
cv::Mat c = a * b

だとアサーションが発生します。そのため、行列の掛け算をする時は、

cv::Mat_<float> a, b;
cv::Mat_<float> c = a * b

のようにしましょう。ただし、データ型としてucharは使えませんでした。コンパイルは通るのですが、結局アサーションが発生しました。