OPENCV中给定矩阵的形状错误

use*_*510 2 opencv

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

resize(testing,output, images[0].size(),0,0,INTER_NEAREST);
Run Code Online (Sandbox Code Playgroud)

测试是来自网络摄像头的Mat,输出是调整大小的图像,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
Run Code Online (Sandbox Code Playgroud)

byt*_*ish 15

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

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