python计算图片的信源熵值(信息熵)

 

 附录:

from PIL import Image
from matplotlib import pyplot as plt
import numpy as np
import scipy as cp
import math
image = Image.open(r'C:\Users\Administrator\Desktop\IMG.jpg') # 读入和显示图像
images=np.asarray(image)
plt.subplot(211)
plt.imshow(images)
plt.subplot(212)
images1=images.max(axis=2)
plt.imshow(images1,cmap='gray')
row,col=images1.shape[0],images1.shape[1] # 求图像的规格
images1_size=row*col # 图像像素点的总个数
H1=0
n=np.array([0 for i in range(256)]) # 产生一个 256 维数组

p=[]
for a in images1:
 for b in a:
 img_level=b # 获取图像的灰度级
 n[img_level]+=1 # 统计每个灰度级像素的点数
for k in range(256): # 循环
 v=n[k]/images1_size # 计算每一个像素点的概率
 p.append(v) # 为什么对数组赋值赋值不了
 if v!=0: # 如果像素点的概率不为零
 H1 += -v*math.log2(v) # 求熵值的公式
print('信源熵值:{}'.format(H1)) # 显示熵值

 引用:信息熵的计算与分析.matlab

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值