import cv2
import matplotlib.pyplot as plt
import numpy as np
import math
def calc_2D_Entropy():
'''
邻域 3*3的小格子
__ __ __
|__|__|__|
|__||||__|
|__|__|__|
角点
__ __
||||__|
|__|__|
边
__ __
| |__|
||||__|
|__|__|
'''
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png',0)#读取图像
N=1
S=img.shape
IJ=[]
#计算j
for row in range(S[0]):
for col in range(S[1]):
Left_x=np.max([0,col-N])
Right_x=np.min([S[1],col+N+1])
up_y=np.max([0,row-N])
down_y=np.min([S[0],row+N+1])
region=img[up_y:down_y,Left_x:Right_x] # 九宫格区域
j=(np.sum(region)-img[row][col])/((2*N+1)**2-1)
IJ.append([img[row][col],j])
print(IJ)
F=[]#计算F(i,j)
arr=[list(i) for i in set(tuple(j) for j in IJ)]#去重
for i in range(len(arr)):
F.append(IJ.count(arr[i]))
print(F)
P=np.array(F)/len(F)#计算pij
E=np.sum([p*np.log2(1/p) for p in P])#二维熵
print(E)
calc_2D_Entropy()
[1, 75, 98, 59, 42, 73, 30, 37, 49, 5, 4, 11, 7, 4, 6, 2, 3, 5, 1, 1, 4, 2, 1, 1, 1, 3, 4, 5, 6, 2, 7, 1, 1, 2, 1, 1, 1, 1, 2, 1, 5, 2, 1, 4, 8, 8, 9, 4, 12, 7, 5, 1, 1, 1, 1, 1, 31, 27, 26, 31, 39, 40, 22, 31, 24, 34, 17, 17, 25, 11, 1, 1, 1, 1, 3, 4, 2, 2, 1, 2, 1, 1, 3, 2, 3, 3, 2, 1, 1, 1, 1, 2, 3, 1, 1, 3, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 3, 4, 2, 1, 2, 3, 2, 6, 10, 7, 4, 5, 1, 4, 3, 1, 3, 1, 1, 1, 1, 2, 1, 3, 3, 1, 1, 2, 19, 13, 9, 9, 10, 8, 6, 2, 2, 1, 1, 2, 10, 7, 10, 13, 18, 10, 8, 6, 1, 4, 2, 2, 11, 9, 11, 8, 12, 10, 10, 4, 1, 4, 1, 2, 6, 1, 2, 1, 5, 5, 11, 7, 11, 11, 12, 3, 2, 4, 3, 2, 1, 2, 2, 2, 1, 1, 1, 1, 1, 18, 30, 13, 17, 19, 6, 1, 2, 1, 3, 1, 1, 2, 1, 1, 2, 2, 1, 16, 15, 20, 13, 16, 17, 15, 8, 4, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 23, 30, 8, 13, 13, 12, 20, 11, 4, 3, 15, 8, 2, 1, 1, 2, 2, 3, 1, 1, 1, 5, 2, 4, 2, 2, 2, 2, 1, 3, 2, 4, 2, 1, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 7, 2, 2, 2, 2, 2, 1, 1, 1, 4, 2, 3, 6, 7, 2, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 2, 22, 20, 21, 16, 10, 16, 20, 11, 1, 1, 1, 1, 2, 3, 2, 2, 1, 1, 2, 2, 1, 1, 18, 16, 13, 21, 12, 20, 40, 28, 33, 25, 34, 28, 29, 22, 1, 1, 2, 1, 3, 97, 61, 60, 71, 83, 50, 68, 44, 1, 1, 1, 1, 1, 1, 3, 92, 57, 68, 71, 51, 96, 39, 40, 1, 1, 1, 1, 2, 1, 1, 1, 1, 24, 16, 20, 25, 27, 19, 20, 22, 2, 2, 1, 1, 1, 2, 5, 2, 2, 1, 2, 2, 4, 1, 1, 1, 2, 4, 1, 5, 4, 8, 7, 3, 3, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 5, 2, 5, 3, 8, 6, 3, 5, 3, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 2, 1, 1, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, 1, 1, 3, 2, 1, 3, 2, 1, 1, 2, 1,...... 2, 2, 2, 1, 2, 2, 1, 3, 5, 2, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 3, 2, 2, 3, 1, 2, 1, 1, 1, 40, 42, 44, 32, 28, 29, 41, 31, 3, 2, 1, 1, 1, 2, 1, 1, 1, 1, 4, 2, 1, 2, 2, 1, 3, 9, 3, 7, 5, 4, 7, 4, 136, 125, 39, 123, 17, 33, 21, 29, 2, 4, 1, 1, 1, 1, 29, 24, 22, 17, 16, 22, 16, 22, 15, 24, 1, 1, 2, 1, 1, 1, 3, 2, 3, 3, 3, 2, 2, 3, 2, 2, 1, 1, 13, 13, 17, 18, 15, 9, 12, 10, 1, 2, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, 33, 26, 33, 36, 27, 24, 20, 30, 1, 1, 1, 1, 7, 5, 15, 2, 1, 5, 1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 3, 1, 6, 8, 8, 6, 7, 1, 1, 4, 2, 2, 2, 3, 1, 1, 2, 1, 2, 3, 4, 3, 1, 1, 1, 6, 8, 3, 9, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 9, 2, 3, 5, 15, 12, 5, 9, 10, 11, 8, 5, 1, 2, 2, 1, 2, 2, 1, 3, 1, 6, 3, 1, 6, 4, 7, 5, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 6, 2, 3, 4, 7, 2, 55, 55, 52, 53, 1, 1, 2, 44, 2, 1, 1, 177, 173, 181, 1, 83, 53, 101, 37, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 1, 1, 2, 1, 8, 15, 14, 5, 7, 12, 18, 14] 79.43241144310961
算法:二维熵是在一维熵的基础上引入能够反映灰度分布空间特征的特征量来组成图像的二维熵。这表征灰度信息的空间特征,引入图像的像素点与该点的邻域信息,表示邻域灰度均值(0≤j≤255)。
其中,pij表示某像素位置上的灰度值与其周围像素的灰度分布的综合特征,f(i,j)表示特征二元组(i,j)出现的次数W,H为图像尺寸。
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!