2

我正在尝试使用 opencv 进行面部识别。为此,训练和测试图像的大小必须相同。所以我使用了这个功能:

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

其中 testing 是我来自网络摄像头的 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
4

1 回答 1

17

尽管您没有提供足够的代码来验证,但我可以从给定数量的元素中推断出问题所在。你的测试矩阵是921600 = 3 * 307200......所以我猜你的输入矩阵不是灰度矩阵,但仍然是 BGR 表示。

在调整矩阵大小之前,您应该使用cv::cvtColor将矩阵转换为灰度:

于 2012-08-20T06:18:10.423 回答