计算图像的自信息和信息熵,需包含下述步骤: (1) 读入一幅图像 (2) 计算图中每个灰度级的频数、频率 (3) 从频率出发计算该图像的自信息、信息熵 (4) 可视化显示原图、灰度级频数、自信息和信息熵
时间: 2024-02-06 20:09:11 浏览: 143
以下是基于Python语言的代码实现:
```python
import numpy as np
import matplotlib.pyplot as plt
from skimage import io
# 读入图像
img = io.imread('image.jpg')
# 计算灰度级频数和频率
hist, bin_edges = np.histogram(img.flatten(), bins=256, range=(0, 255))
freq = hist / np.sum(hist)
# 计算自信息和信息熵
self_info = -np.log2(freq)
entropy = -np.sum(freq * np.log2(freq))
# 可视化显示
fig, axs = plt.subplots(2, 2, figsize=(10, 10))
axs[0, 0].imshow(img, cmap='gray')
axs[0, 0].set_title('Original Image')
axs[0, 1].bar(bin_edges[:-1], hist, width=1)
axs[0, 1].set_title('Histogram')
axs[1, 0].bar(bin_edges[:-1], self_info, width=1)
axs[1, 0].set_title('Self Information')
axs[1, 1].bar(['Entropy'], [entropy])
axs[1, 1].set_title('Entropy')
plt.show()
```
注意,以上代码中需要替换的是 `image.jpg`,即需要计算自信息和信息熵的图像文件路径。运行代码后,会显示原始图像、灰度级频数直方图、自信息和信息熵的可视化结果。
阅读全文