opencv::meanStdDev 带有矢量<vector<double>>

Posted

技术标签:

【中文标题】opencv::meanStdDev 带有矢量<vector<double>>【英文标题】:opencv::meanStdDev with vector<vector<double>> 【发布时间】:2017-05-24 21:40:07 【问题描述】:

我想使用cv::meanStdDev 计算二维向量的均值和标准差。但它不断出错。这是我的代码示例

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

OpenCV Error: Assertion failed (0 &lt;= i &amp;&amp; i &lt; (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&lt;vector&lt;_T&gt;&gt; 作为 InputArray。我在这里做错了什么?非常感激。

【问题讨论】:

错误是什么? 我更新了帖子中的错误。 【参考方案1】:

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

【讨论】:

这似乎是 OpenCV 的 getMat_() 例程中的一个问题。根据 OpenCV 的文档 [docs.opencv.org/2.4/modules/core/doc/… a vector> 应该可以工作,正如您所说的那样。

以上是关于opencv::meanStdDev 带有矢量<vector<double>>的主要内容,如果未能解决你的问题,请参考以下文章

带有矢量切片的矢量指针,用于从前序和中序向量生成树

带有矢量对象 C++ 的快速排序函数

带有 Eigen 和 IPOPT 的矢量化标志

SVG矢量图

如何让带有渐变的矢量可绘制对象在 < API 24 中工作?

带有矢量的 LNK2005 错误