【无标题】Python 峰度计算,以及峰度在图像处理中的刁钻运用。

您所在的位置:网站首页 峰度和峰度系数一样吗怎么算 【无标题】Python 峰度计算,以及峰度在图像处理中的刁钻运用。

【无标题】Python 峰度计算,以及峰度在图像处理中的刁钻运用。

2024-07-12 15:17| 来源: 网络整理| 查看: 265

1.什么是峰度?

峰度:峰度是衡量一组数据分布曲线的陡峭程度。定义公式如下,但一般使用时不会使用定义式: 在这里插入图片描述 其中μ为均值, σ为标准差, μ4为四阶中心距。实际应用一般使用如下公式: 在这里插入图片描述 若峰度大于0,则说明该组数据的分布曲线相较于正态分布更加陡峭;若峰度小于0,则说明该组数据的分布曲线相较于正态分布更加平缓。换言之,峰度越大,则数据在靠近均值的部分分布得越多,在距离均值较远的部分分布得较少。

2.python 如何计算峰度? import cv2 as cv import numpy as np import pandas as pd from matplotlib import pyplot as plt import os,time from functools import wraps def timeCount(func): ''' 函数耗时计时装饰器 ''' @wraps(func) def wrapper(*args, **kwargs): timeA = time.time() result = func(*args, **kwargs) print('耗时:{:6.3} 秒, {}'.format(time.time()-timeA, func.__name__)) return result return wrapper #1.通过pandas实现 y=[] s=pd.Series(y) #转为series print('峰度:',s.kurt()) #2.依据公式手动实现 def GetHist_kurt(hist): ''' 计算灰度直方图峰度方法 等价于pandas:pd.Series(data).kurt() ''' m4,m2= 0,0 n = len(hist) avg = np.mean(hist) Func1 = n*(n+1)*(n-1)/(n-2)/(n-3) Func2 = 3*(n-1)**2/(n-2)/(n-3) for i in hist: m4+=(i-avg)**4 m2+=(i-avg)**2 kurt_Value=Func1*m4/m2**2-Func2 return kurt_Value #运用 @timeCount def Hist_Kurt(src,name): ''' src:原图 name:图片名称 该函数作用:求图像直方图的峰度,判断高亮度的图像被遮挡程度. ''' if len(src.shape) == 2: gray = src else: gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) #获取直方图 hist = cv.calcHist([gray], [0], None, [256], [0,256]).ravel() x = np.arange(0,256,1) y = hist[:] s=pd.Series(y) #list转为series KurtValue = s.kurt() plt.plot(x,y,'-',label = 'original values') plt.xlabel('hist') plt.ylabel('count') plt.title('Hist-View') plt.show() if abs(255-KurtValue)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3