如何计算Opencv中两幅图像的联合熵

如何计算Opencv中两幅图像的联合熵,opencv,entropy,Opencv,Entropy,我必须计算两个灰度图像之间的互信息。为此,我必须计算图像的熵和联合熵。但是我在Opencv中找不到任何熵函数和联合熵函数。有人能帮我在Opencv中找到熵函数和联合熵函数吗?要做到这一点,你需要计算图像直方图,你可以在Opencv中使用calcHist()函数进行计算。然后,通过将每个箱子中的值除以图像中的总像素数,对直方图进行规格化以获得概率。然后,图像熵由下式给出: 其中每个元素都是直方图中的一个值(假设直方图在[0-255]范围内)。您需要小心使用零值,因为这些值在获取日志时计算为-无穷

我必须计算两个灰度图像之间的互信息。为此,我必须计算图像的熵和联合熵。但是我在Opencv中找不到任何熵函数和联合熵函数。有人能帮我在Opencv中找到熵函数和联合熵函数吗?

要做到这一点,你需要计算图像直方图,你可以在Opencv中使用
calcHist()
函数进行计算。然后,通过将每个箱子中的值除以图像中的总像素数,对直方图进行规格化以获得概率。然后,图像熵由下式给出:


其中每个元素都是直方图中的一个值(假设直方图在[0-255]范围内)。您需要小心使用零值,因为这些值在获取日志时计算为-无穷大。

从未在OpenCV中听说过此类函数。也许你可以自己实施。我认为熵=-sigma(p*logp),其中p是概率。OpenCV具有日志、直方图功能。那就试试吧。你要找的人都在做。我能用同样的方法通过熵进行图像差分,忽略空帧,只得到包含图像的帧吗object@Ahmad如果您确信对象的外观和位置在帧之间不会发生太多变化,那么这可能会起作用。但是,还有更好的目标检测方法。我已经使用了surf和bow与svm,现在我想从电影中检测汽车,所以有很多不相关的空帧,所以我想忽略它们,我想用它来达到这个目的