2017-05-24 150 views
0

我想使用cv::meanStdDev来计算2D矢量的均值和标准偏差。但它不断收到错误。这里是如果我将其更改为一维向量我的代码opencv :: meanStdDev带有矢量<vector <double>>

vector<vector<uchar>> v = {{1,2,3}, {4,5,6}}; 
Scalar mean, stddev; 
meanStdDev(v, mean, stddev); 

OpenCV Error: Assertion failed (0 <= i && i < (int)vv.size()) in cv::_InputArray::getMat_, file C:\build\master_winpack-build-win64-vc14\opencv\modules\core\src\matrix.cpp, line 1244

一个例子。它的工作原理

vector<uchar> v = {1,2,3}; 
Scalar mean, stddev; 
meanStdDev(v, mean, stddev); 

该文件指出,cv::meanStdDev可以采取vector<vector<_T>>为InputArray。我在这里做错了什么?非常感激。

+0

错误是什么? –

+0

我更新了帖子中的错误。 – user8060987

回答

0

您的代码/帖子中没有任何内容指示实际发生错误的位置。尝试将调用包装在try catch块中,当您查看调试器中的异常时,可能会提供更多信息。

+0

谢谢。我更新了catch的错误。 – user8060987

+0

这似乎是OpenCV的getMat_()例程中的一个问题。根据OpenCV的文档[http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html?highlight=inputarray#inputarray],矢量< vector < T>>应该可以工作,如您所述。 –

相关问题