图像评价指标 信息熵的python代码
时间: 2023-06-16 18:07:35 浏览: 407
以下是使用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
### 图像融合评价指标的Python代码
对于图像融合效果的评估,通常采用多种定量度量标准来衡量融合后的图像质量。这些度量方法可以从不同角度反映融合算法的好坏,常见的包括均方误差(MSE),峰值信噪比(PSNR),结构相似性(SSIM)以及互信息(MI)[^1]。
下面提供了一组基于上述几种典型评价指标的Python实现:
#### 计算MSE (Mean Squared Error)
```python
import numpy as np
def mse(imageA, imageB):
err = np.sum((imageA.astype("float") - imageB.astype("float")) ** 2)
err /= float(imageA.shape[0] * imageA.shape[1])
return err
```
此函数计算两幅图片之间的平均平方差[MSE].
#### PSNR (Peak Signal-to-Noise Ratio)
```python
from math import log10, sqrt
def psnr(original, compressed):
mse_value = mse(original, compressed)
if mse_value == 0:
return 100
max_pixel = 255.0
psnr_value = 20 * log10(max_pixel / sqrt(mse_value))
return psnr_value
```
该部分实现了峰值信噪比的计算逻辑. 当输入图像完全相同时返回最大值100dB.
#### SSIM (Structural Similarity Index Measure)
为了更贴近人类视觉系统的感知特性,SSIM被广泛应用于图像质量评估中:
```python
from skimage.metrics import structural_similarity as ssim
def calculate_ssim(img1, img2):
score, diff = ssim(img1, img2, full=True)
return score
```
这里利用`skimage`库中的内置功能快速获取两张对比图间的结构性相似程度得分.
#### MI (Mutual Information)
互信息能够体现源图像间的信息共享水平,在多模态数据处理领域尤为重要:
```python
from sklearn.metrics import mutual_info_score
def mutual_information(hgram):
""" Mutual information for joint histogram"""
# Convert bins counts into probability values
pxy = hgram / float(np.sum(hgram))
px = np.sum(pxy, axis=1) # marginal for x over y
py = np.sum(pxy, axis=0) # marginal for y over x
px_py = px[:, None] * py[None,:] # Broadcast to multiply marginals
nzs = pxy > 0 # Only non-zero pxy values contribute to the sum
return np.sum(pxy[nzs] * np.log(pxy[nzs] / px_py[nzs]))
def calc_mi(imageA, imageB, num_bins=256):
hist_2d, _, _ = np.histogram2d(
imageA.ravel(),
imageB.ravel(),
bins=num_bins,
range=[[0, 256], [0, 256]]
)
mi = mutual_information(hist_2d)
return mi
```
通过构建联合直方图并应用熵理论公式得出两个随机变量之间存在的依赖关系强度.
信息熵,峰值信噪比评价图片彩色化质量代码
以下是一个简单的 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。
阅读全文
相关推荐
![m](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)