我想使用 OpenCV 中的adaptiveThreshold
函数来确定vector<double>
中值的适当本地阈值。
adaptiveThreshold
在docs中指定如下:
void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
请注意,src
必须是源8位单通道图片(因此,如果我理解正确,输入必须是CV_8UC1
类型,请更正我,如果我在这里错了......)。
由于我的vector<double>
不属于CV_8UC1
类型,因此解决此问题的一种方法是将0
和255
范围内的值标准化,然后输入将归一化值作为vector<unsigned char>
传递到adaptiveThreshold
函数中。
初看起来可能看起来不错,但随着原始vector<double>
中的值变得非常大并且归一化到0
到{{的范围内,它会大大降低精度。 1}}。
所以,我想知道是否有一个选项可以将255
函数用于更广泛的值。对我而言,它应该只适用于最大值为adaptiveThreshold
的值...这似乎很不合逻辑...感觉我监督的事情非常简单,但我无法弄清楚如何解决这个问题......
答案 0 :(得分:1)
我担心对于更广泛的价值观没有这样的选择。但是,推出一个需要“双倍”的版本相当容易。值为OpenCV是开源的。只需找到adaptiveThreshold()的源代码并将其更改为您自己使用。