python-3.x 如何从直方图中获取统计信息?

tkqqtvp1  于 2022-11-19  发布在  Python
关注(0)|答案(2)|浏览(125)

我试图从直方图中得到四个一阶直方图统计量(平均值、方差、偏度和峰度)。
我有这个计算直方图的代码:

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()

我怎么才能得到统计数据?

j8ag8udp

j8ag8udp1#

根据我的回答

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).sum() / freq.sum()
    d = var_h(val, freq) ** (n / 2)
    return n / d

偏度和峰度只是三阶和四阶矩

0ejtzxu1

0ejtzxu12#

如果bin的数量是合理的,你应该能够手动计算值,放入一个向量;然后计算所有的力矩。

相关问题