C++ 对于大于255的值(即键入CV_8UC1),如何使用OpenCV中的adaptiveThreshold?

C++ 对于大于255的值(即键入CV_8UC1),如何使用OpenCV中的adaptiveThreshold?,c++,opencv,image-processing,vector,adaptive-threshold,C++,Opencv,Image Processing,Vector,Adaptive Threshold,我想使用OpenCV中的adaptiveThreshold函数,以便为向量中的值确定适当的本地阈值 自适应阈值在中指定如下: void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C) 请注意,src必须是源8位单通道图像(因此输入类型必须为CV_8UC1如果我理解正确,请纠正我这里

我想使用OpenCV中的
adaptiveThreshold
函数,以便为
向量中的值确定适当的本地阈值

自适应阈值
在中指定如下:

void adaptiveThreshold(InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
请注意,
src
必须是源8位单通道图像(因此输入类型必须为
CV_8UC1
如果我理解正确,请纠正我这里的错误…)

由于我的
向量
不是
CV_8UC1
类型,一种方法是将
0
255
范围内的值标准化,然后将得到的标准化值作为
向量
输入
自适应阈值
函数

乍一看,这可能看起来不错,但随着原始
向量中的值变得非常大,并被标准化到
0
255
的范围,它的精度会大大降低


因此,我想知道是否没有一个选项可以将
adaptiveThreshold
函数用于更大范围的值。对我来说,这似乎太不合逻辑了,它应该只处理最大值为
255的值。。。感觉上我监督了一件非常简单的事情,但我不知道如何解决这个问题……

恐怕没有一个更广泛的价值观选择。但是,由于OpenCV是开源的,所以派生一个采用“双”值的版本是相当容易的。只需找到adaptiveThreshold()的源代码,并将其更改为您自己使用。

不要故作迂腐,但您是否量化了标准化值时会损失多少精度,以及它是否会影响您的应用程序?