我正在尝试使用opencv进行面部识别。为此,训练和测试图像必须具有相同的尺寸。 所以我使用了这个功能:
resize(testing,output, images[0].size(),0,0,INTER_NEAREST);
如果测试是来自网络摄像头的Mat,则Output是调整大小的图像,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
答案 0 :(得分:15)
虽然您没有提供足够的代码来验证,但我可以从给定数量的元素中推断出问题。你的测试矩阵是921600 = 3 * 307200
...所以我猜你的输入矩阵不是灰度矩阵,但仍然是BGR表示。
在调整矩阵大小之前,您应该使用cv::cvtColor将矩阵转换为灰度: