噪声对香农熵有什么影响?

信息处理 图像处理 matlab 噪音 信息论
2022-01-30 10:16:48

由于熵是不确定性或随机性的量度,直觉上我们会假设向图像添加噪声会增加其熵,因为我们现在对图像的信息更加不确定。我实际上(部分地)用下面的 MATLAB 代码证实了这个假设,我注意到当向灰度图像添加高斯噪声时,熵会增加,而添加椒盐噪声会稍微降低熵。为什么会发生这种情况,噪声如何影响图像的整体香农熵?

这是我的 MATLAB 代码:

load('trees.mat');
RGB=ind2rgb(X,map);
GRAY=rgb2gray(RGB);
vecRGB=RGB(:);                                 %--vector of RGB image
vecGRAY=GRAY(:);                               %--vector of GRAYSCALE image
HVECR=entropy(vecRGB);                         %--entropy of RGB image
HVECG=entropy(vecGRAY);                        %--entropy of GRAYSCALE image
GRAY_GAUSSIAN=imnoise(GRAY,'gaussian');        %--add gaussian noise to GRAYSCALE image
GRAY_SALT=imnoise(GRAY,'salt & pepper');       %--add salt & pepper noise
vec_GRAYG=GRAY_GAUSSIAN(:);                    %--vectorize image with gaussian noise
vec_GRAYSP=GRAY_SALT(:);                       %--vectorize image with salt & pepper noise
HVECGG=entropy(vec_GRAYG);                     %--entropy with gaussian noise
HVECGSP=entropy(vec_GRAYSP);                   %--entropy with salt & pepper noise

这些是我得到的熵:

  • 灰度图像的熵(无噪声)=5.4723
  • 灰度图像的熵(高斯噪声)=7.6948
  • 灰度图像的熵(Salt & Pepper Noise)=5.4380
1个回答

灰度图像实际上是一个离散图像。entropy计算直方图并从中提取“经验”概率,用于公共信息公式

I=log2(P(g))

其中是强度值的(经验)概率。P(g)g

现在,熵是 Information 的期望值。对于你的整个形象这意味着HV

H(V)=E{I(gx,y)}=x,yidx(V)P(gx,y)(log2(P(gx,y)))=x,yidx(V)P(gx,y)log2(P(gx,y))

如果您足够深入地查看总和中的乘积,您会注意到,如果所有属性都相等,则总和将取最大值——也就是说,如果每个强度值都与其他强度值一样可能。该图像的直方图将是一条平线。

添加“表现良好”的噪声将使几乎任何图像看起来都更像那样——最终,具有相同强度的像素在大多数自然图像中将相对常见,而添加噪声将“打破”这一点。

现在,salt'n'pepper 不同了:您为图像添加了极端值。这将使许多像素的强度剪辑在最大强度(或最小强度),将直方图从平坦偏斜到熵较小的非常“有角”的东西。