gpt4 book ai didi

c++ - OpenCV/C++ - 如何在 vector 而不是 Mat 上使用 adaptiveThreshold?

转载 作者:搜寻专家 更新时间:2023-10-31 02:23:03 24 4
gpt4 key购买 nike

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

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

看完this article ,我很清楚如何使用此函数为 images 找到一个好的阈值(在 OpenVC 中表示为 Mat 对象)。

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

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

最佳答案

创建一个包装 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 将是一列。

关于c++ - OpenCV/C++ - 如何在 vector 而不是 Mat 上使用 adaptiveThreshold?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29681666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com