多阶矩在图像中的含义(方差,偏度,峰度)

来源:互联网 发布:改图软件app 编辑:程序博客网 时间:2024/06/06 07:42

设图像共有N点(图像块则为w*h个像素点),第i点的灰度值为Xi,其均值为X,则这些特征的含义如下:


方差(Variance):是一种衡量样本分布均匀性的尺度标准。

计算公式为:



偏度(Skewness):描述的是样本总体取值分布的对称性,即图像的扭曲度。

计算公式为:

偏度需要与正态分布相比较,偏度为0表示其数据分布形态与正态分布的偏斜程度相同;偏度大于0表示其数据分布形态与正态分布相比为正偏或右偏,即有一条长尾巴拖在右边,数据右端有较多的极端值;偏度小于0表示其数据分布形态与正态分布相比为负偏或左偏,即有一条长尾拖在左边,数据左端有较多的极端值。偏度的绝对值数值越大表示其分布形态的偏斜程度越大。



峰度(Kurtosis):描述的是样本总体中所有取值分布形态的陡缓程度,表示样本分布的峰值是否突兀或平坦。

计算公式为:

峰度同样也需要与正态分布相比较,峰度为0表示该总体数据分布与正态分布的陡缓程度相同;峰度大于0表示该总体数据分布与正态分布相比较为陡峭,为尖顶峰;峰度小于0表示该总体数据分布与正态分布相比较为平坦,为平顶峰。峰度的绝对值数值越大表示其分布形态的陡缓程度与正态分布的差异程度越大。


C++下计算偏度和峰度的代码如下:

void triple_fourth_moment(Mat& box,Boundingbox &bb) //计算图像框内的偏度、峰度{double Tmean = (double)bb.mean; //图像块均值double var = bb.var;//图像块的方差int w = box.cols;int h = box.rows;double triple_monent = 0;double fourth_monent = 0;for (int i = 0; i < h; i++){uchar *data = box.ptr<uchar>(i);for (int j = 0; j < w; j++){triple_monent += pow(abs(data[j] - Tmean), 3); fourth_monent += pow((data[j] - Tmean), 4);}}bb.tri_mon = triple_monent / (w*h*pow(var,1.5)); //分别得到当前框的<span style="font-family: Arial;">偏度、峰度</span>bb.four_mon = fourth_monent / (w*h*pow(var,2));}


0 0
原创粉丝点击