将 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)相乘。