2

我有一个关于在 C++ 中使用OpenCVadaptiveThreshold中的函数的问题。(这是它的文档。)

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)

读完这篇文章,我很清楚如何使用这个函数来找到一个好的图像阈值(在OpenVC中表示为Mat对象)。

我的情况有点不同,因为我只想将它用于 avector而不是 a Mat。所以基本上我有一个vectordouble,我需要找到一个好的阈值,并且想知道是否有一种简单的方法可以adaptiveThreshold针对这个问题调整函数。我尝试了更多静态方法来生成阈值,例如使用平均平均值或中位数,但在我的情况下这些方法效果不佳。

有人对如何解决这个问题有建议吗?我猜我将不得不调整srcanddst参数并以某种方式传递我的向量,但是这样做的直接方法不起作用。

4

1 回答 1

2

创建一个cv::Mat包装vector. 声明了相关的构造函数:

//! builds matrix from std::vector with or without copying the data
template<typename _Tp> explicit Mat(const vector<_Tp>& vec, bool copyData=false);

所以你应该能够做到:

std::vector<double> vec(10, 0.0); // your vector here
bool copyData = false;
cv::Mat M(vec, copyData); // default is not to copy data

结果Mat将是一列。

于 2015-04-16T21:01:08.287 回答