图像的熵

信息处理 图像处理 C#
2022-02-03 06:57:54

如果我想测量图像的熵,我应该怎么做?

我的目标是在我的 C# 桌面应用程序中忽略诸如随风飘动的树叶之类的事情。

我知道 matlab 有这个功能,但我在 Emgu 中看不到它,这是我正在使用的。

我发现“香农熵”可能是前进的方向,但我对如何在 C# 中专门为图像实现它感到困惑。

2个回答

您可能已经发现离散随机变量的熵由下式定义X

(1)H(X)=i=1Npilog2pi

其中是字母表的大小(即的可能值的数量),而假设字母表中可以解释为通过观察获得的平均信息。NXpiXithH(X)X

对于图像,您需要估计值您可以通过计算图像的直方图来做到这一点:定义个(相等)灰度范围的 bin,并简单地计算每个 bin 的像素数。将每个 bin 的像素数除以像素总数可以估算出然后你只需要将这些值代入 (1) 就可以得到图像的熵。piNpi

“如果我想测量图像的熵,我应该怎么做?”

一个很好的问题,截至 2016 年 9 月,它有一个简单且可直接计算的答案。

最近的 Stack Exchange 通信中回答了这个问题:

https://stats.stackexchange.com/questions/235270/entropy-of-an-image

最近的 arXiv 预印本中有详细的解释:

https://arxiv.org/abs/1609.01117

请注意,预印本包含指向 GitHub 实验源代码的链接。