【问题标题】:How to get statistics from a histogram?如何从直方图中获取统计信息?
【发布时间】:2018-10-27 13:24:39
【问题描述】:

我正在尝试获取四个一阶直方图统计信息(平均 直方图的方差、偏度和峰度)。

我有这个计算直方图的代码:

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

我怎样才能得到这些统计数据?

【问题讨论】:

    标签: python-3.x numpy matplotlib


    【解决方案1】:

    根据我的回答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
    

    偏度和峰度只是第三和第四时刻

    【讨论】:

      【解决方案2】:

      如果箱的数量是合理的,你应该可以手动计算值,放入一个向量;并计算所有这些时刻。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-24
        • 1970-01-01
        • 1970-01-01
        • 2015-10-03
        • 2012-11-25
        • 2017-03-31
        • 1970-01-01
        相关资源
        最近更新 更多