1

我想使用OpenCVadaptiveThreshold中的函数来确定 a 中值的适当的本地阈值。vector<double>

adaptiveThreshold文档中指定如下:

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

请注意,src它必须是Source 8-bit 单通道图像(所以如果我理解正确,输入需要是类型CV_8UC1,如果我在这里错了,请纠正我......)。

由于 myvector<double>不是 type CV_8UC1,解决此问题的一种方法是将范围内的值归一化0255然后将生成的归一化值作为 avector<unsigned char>输入到adaptiveThreshold函数中。

乍一看这可能看起来不错,但随着我原始值中的值vector<double>变得非常大并归一化到 to 的范围内0,它会带来很大的精度损失255

所以,我想知道是否没有选项可以将该adaptiveThreshold函数用于更广泛的值。对我来说这似乎太不合逻辑了,它应该只适用于最大值255......感觉就像我监督了一些非常简单的事情,但我不知道如何解决这个问题......

4

1 回答 1

1

对于更广泛的值,恐怕没有这样的选择。但是,由于 OpenCV 是开源的,因此很容易得出一个采用“双”值的版本。只要找到adaptiveThreshold()的源代码,改成自己用。

于 2015-04-17T11:09:09.747 回答