图像评价指标 信息熵的python代码
时间: 2023-06-16 12:07:35 浏览: 375
以下是使用Python计算图像评价指标中信息熵的示例代码:
```python
import numpy as np
from skimage import io
import math
def entropy(img):
# 计算图像的灰度直方图
histogram = np.histogram(img, bins=256, range=[0, 255])[0]
# 计算图像的像素总数
pixels = np.sum(histogram)
# 计算每个灰度级别的像素概率
probabilities = histogram / pixels
# 计算信息熵
entropy = -np.sum(probabilities * np.log2(probabilities))
return entropy
# 读取图像
img = io.imread('image.jpg', as_gray=True)
# 计算信息熵
img_entropy = entropy(img)
print('图像的信息熵为:', img_entropy)
```
在代码中,首先使用 `skimage` 库中的 `io.imread()` 函数读取图像,并将其转换为灰度图像。然后,使用 `numpy` 库中的 `np.histogram()` 函数计算图像的灰度直方图,并计算图像的像素总数。接下来,计算每个灰度级别的像素概率,并使用公式计算信息熵。最后,输出图像的信息熵值。
相关问题
信息熵,峰值信噪比评价图片彩色化质量代码
以下是一个简单的 Python 代码示例,用于计算图像的信息熵和峰值信噪比(PSNR)指标,以评估彩色化质量。需要安装 NumPy 和 OpenCV 库。
```python
import cv2
import numpy as np
# Load the original and colorized images (in BGR format)
img_original = cv2.imread('original.jpg')
img_colorized = cv2.imread('colorized.jpg')
# Calculate the image entropy
hist_original = cv2.calcHist([img_original], [0], None, [256], [0, 256])
hist_normalized = hist_original / float(img_original.size)
hist_normalized = hist_normalized[np.where(hist_normalized > 0)]
image_entropy = -np.sum(hist_normalized * np.log2(hist_normalized))
# Calculate the peak signal-to-noise ratio (PSNR)
mse = np.mean((img_original - img_colorized) ** 2)
if mse == 0:
psnr = 100
else:
psnr = 20 * np.log10(255.0 / np.sqrt(mse))
# Print the results
print("Image entropy:", image_entropy)
print("PSNR:", psnr)
```
其中,`img_original` 和 `img_colorized` 分别代表原始图像和彩色化后的图像,可以根据实际情况调整文件路径。输出结果包括图像的信息熵和 PSNR。
阅读全文