我正在尝试获取四个一阶直方图统计信息(平均值, 直方图显示方差,偏度和峰度。
我有这段代码可以计算直方图:
import cv2
from matplotlib import pyplot as plt
img1 = 'img.jpg'
gray_img = cv2.imread(img1, cv2.IMREAD_GRAYSCALE)
plt.hist(gray_img.ravel(),256,[0,256])
plt.title('Histogram for gray scale picture')
plt.show()
如何获取该统计信息?
答案 0 :(得分:0)
如果bin的数量合理,则应该能够手动将值计数到向量中;并计算所有这些时刻。
答案 1 :(得分:0)
根据我的回答here
def mean_h(val, freq):
return np.average(val, weights = freq)
def var_h(val, freq):
dev = freq * (val - mean_h(val, freq)) ** 2
return dev.sum() / freq.sum()
def moment_h(val, freq, n):
n = (freq * (val - mean_h(val, freq)) ** n) / freq.sum()
d = var_h(val, freq) ** (n / 2)
return n / d
偏度和峰度只是第三和第四时刻