2013-02-15 59 views
3

我必須計算兩幅灰度圖像之間的相互信息。爲此我必須計算圖像的熵和聯合熵。但是我在Opencv中找不到熵和聯合熵的任何函數。有沒有人可以幫助我找到Opencv中的熵和聯合熵函數?如何計算兩幅圖像在Opencv中的聯合熵

+1

從來沒有聽說過OpenCV中的這些功能。也許你可以自己實現它。我認爲熵= -sigma(p * log p)其中p是概率。 OpenCV具有日誌,直方圖功能。所以試試他們。 – 2013-02-15 16:16:52

+0

這個人在http://stackoverflow.com/questions/13920828/wierd-output-while-finding-entropy-of-frames-of-a-video-in-opencv正在做你所有的事情。 – mmgp 2013-02-15 19:12:12

回答

1

爲此,您需要計算圖像直方圖,您可以在OpenCV中使用calcHist()函數執行此操作。然後,將直方圖標準化,通過將每個bin中的值除以圖像中的像素總數來獲得概率。圖像熵由下式給出:

formula

,其中每個元素是formula2從直方圖的值(假設你的直方圖是在範圍[0-255])。您將需要小心零值,因爲這些值在記錄日誌時評估爲無窮大。

+0

我可以通過熵使用相同的圖像差異方法來忽略空幀並只獲取包含對象的幀 – Rocket 2013-08-31 20:49:36

+0

@Ahmad如果您確定對象外觀和位置在幀之間不會發生太大變化,這可能會起作用。然而,有很多更好的對象檢測方法。 – 2013-09-01 11:48:36

+0

我已經用svm衝浪和弓,現在我想從電影中檢測到車,所以有很多不相關和空框架,所以我想忽略它們,我想用它來達到這個目的 – Rocket 2013-09-01 17:02:44