2

opencvを使用して顔認識を実行しようとしています。このため、トレーニング画像とテスト画像は同じサイズである必要があります。だから私はこの関数を使用しました:

resize(testing,output, images[0].size(),0,0,INTER_NEAREST);

テストがウェブカメラからの私のマットである場合、出力はサイズ変更された画像であり、images [0] .size()はベクトル画像の私のデータベースです。ただし、次のエラーが発生します。

OpenCV Error: Bad argument (Wrong shapes for given matrices. Was size(src) = (1,921600), 
size(W) = (307200,6).) in subspaceProject,
file /home/someplae/OpenCV-2.4.2/modules/contrib/src/lda.cpp, 
line 187
terminate called after throwing an instance of 'cv::Exception'
what():  /home/someplace/OpenCV-2.4.2/modules/contrib/src/lda.cpp:187: 
error: (-5) Wrong shapes for given matrices. Was size(src) = (1,921600), size(W) = (307200,6). 
in function subspaceProject
4

1 に答える 1

17

検証するのに十分なコードを提供していませんが、指定された数の要素から問題を推測できます。テスト行列は921600 = 3 * 307200...ですから、入力行列はグレースケール行列ではないと思いますが、それでもBGR表現になっています。

サイズを変更する前に、 cv::cvtColorを使用してマトリックスをグレースケールに変換する必要があります。

于 2012-08-20T06:18:10.423 に答える