将 OpenCV 直方图转换为曲线,反之亦然
Converting OpenCV histogram to curve and vise versa
在 python 中使用 OpenCV,我得到了图像中一个通道的直方图,我可以将其转换为曲线以便将这条新曲线与另一条曲线相乘然后 return 输出曲线到直方图以充当我的图像的过滤器?
您首先必须以数组的形式将直方图提取为范围 [0, 255] 的函数。然后使用scipy库或lmfit库(https://lmfit.github.io/lmfit-py/model.html),你可以拟合曲线并提取一个函数。
函数的形式为
y = f(x)
其中 x
是范围 [0,255]。
接下来您必须将另一个函数转换为类似的函数
z = g(x)
使用上面的教程。
请务必记住,您不应该盲目地将随机函数拟合到数据中。您需要了解数据的一般性质以及 f(x)
或 g(x)
是否相对合适。您可能需要在这里进行一些试验和错误。
一旦你获得了f(x)
和g(x)
你就可以创建第三个向量m
你想要的任何范围并使用f(m)*g(m)
相乘。
在 python 中使用 OpenCV,我得到了图像中一个通道的直方图,我可以将其转换为曲线以便将这条新曲线与另一条曲线相乘然后 return 输出曲线到直方图以充当我的图像的过滤器?
您首先必须以数组的形式将直方图提取为范围 [0, 255] 的函数。然后使用scipy库或lmfit库(https://lmfit.github.io/lmfit-py/model.html),你可以拟合曲线并提取一个函数。
函数的形式为
y = f(x)
其中 x
是范围 [0,255]。
接下来您必须将另一个函数转换为类似的函数
z = g(x)
使用上面的教程。
请务必记住,您不应该盲目地将随机函数拟合到数据中。您需要了解数据的一般性质以及 f(x)
或 g(x)
是否相对合适。您可能需要在这里进行一些试验和错误。
一旦你获得了f(x)
和g(x)
你就可以创建第三个向量m
你想要的任何范围并使用f(m)*g(m)
相乘。