Entropy Method简介
计算前景和背景的信息熵,求最大熵。含义是经过阈值分割后图像的平均信息量越大愈好。
主要就是这两个公式,熵的计算公式,学过信息论或通信原理的应该都了解,衡量平均信息量。
代码
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 25 08:48:19 2019
Entropy Method
@author: yun
"""
import cv2
import numpy as np
import matplotlib.pyplot as plt
import math
def Entropy(gray):
p = []#灰度概率
H_last = 0#上一个H总熵
best_k =0#最佳阈值
hist = cv2.calcHist([gray],[0],None,[256],[0,256])#255*1的灰度直方图的数组
for i in range(256):
p.insert(i,hist[i][0]/gray.size)
for k in range(256):
H_b = 0#black的熵,前景的平均信息量
H_w = 0#white的熵,背景的平均信息量
for i in range(k):
if p[i] != 0:
H_b = H_b - p[i]*math.log(2,p[i])