我有一个关于在C++中使用OpenCV的adaptiveThreshold
函数的问题。(这是它的文档。
void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
阅读本文后,我非常清楚如何使用此函数为图像(在 OpenVC 中表示为Mat
对象)找到一个好的阈值。
我的情况有点不同,因为我只想将其用于vector
而不是Mat
。所以基本上我有一个double
值的vector
,我需要找到一个好的阈值,并且想知道是否有一种简单的方法来调整adaptiveThreshold
函数。我尝试了更多的静态方法来生成阈值,例如使用平均平均值或中位数,但这些方法在我的情况下效果不佳。
有人对如何处理这个问题有建议吗?我猜我将不得不调整src
和dst
参数并以某种方式传递我的矢量,但这样做的简单方法不起作用。
创建一个包装vector
的cv::Mat
。 声明了相关构造函数:
//! 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
将是单个列。