gpt4 book ai didi

c++ - 对于大于 255 的值(即类型 CV_8UC1),如何使用 OpenCV 的 adaptiveThreshold?

转载 作者:行者123 更新时间:2023-11-28 06:18:49 31 4
gpt4 key购买 nike

我想使用 adaptiveThreshold来自 OpenCV 的函数,以便为 vector<double> 中的值确定适当的局部阈值.

adaptiveThresholddocs 中指定如下:

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

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

自从我的vector<double>不是 CV_8UC1 类型, 解决这个问题的一种方法是将 0 范围内的值归一化和 255然后将生成的归一化值作为 vector<unsigned char> 提供进入adaptiveThreshold功能。

乍一看这可能看起来不错,但由于我原来的 vector<double> 中的值,它的精度会大大降低。变得非常大并标准化到 0 的范围内至 255 .

所以,我想知道是否没有使用 adaptiveThreshold 的选项为更广泛的值(value)发挥作用。这对我来说似乎很不合逻辑,它应该只适用于最大值为 255 的值。 ...感觉就像我在监督一些非常简单的事情,但我不知道如何解决这个问题...

最佳答案

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

关于c++ - 对于大于 255 的值(即类型 CV_8UC1),如何使用 OpenCV 的 adaptiveThreshold?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696970/

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