You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mahotas中Haralick纹理特征Correlation计算及ux均值疑问

关于Mahotas中Haralick特征边缘均值计算的疑问解答

我在对比Python(Mahotas)与C++实现的两款Haralick纹理特征计算器时,发现部分特征结果一致,但Correlation等特征结果存在差异。现在需要解释Mahotas的texture.py中ux = np.dot(px, k)为何等价于边缘概率矩阵的均值,相关代码如下:

# cmat is the square co-ocurrence matrix
T = cmat.sum()
maxv = len(cmat)
k = np.arange(maxv)
p = cmat / float(T)
px = p.sum(0)
ux = np.dot(px, k)

代码逻辑拆解与均值等价性说明

  1. 归一化联合概率矩阵:p = cmat / float(T)将共生矩阵cmat转换为联合概率分布,其中p[i][j]代表像素对取(i,j)的概率,T是共生矩阵的总元素和(即所有像素对的数量)。
  2. 计算边缘概率分布:px = p.sum(0)对联合概率矩阵按列求和,得到的px是第一个维度(或x方向)像素的边缘概率分布——px[k]表示单个像素取值为k的概率。
  3. 均值的数学定义:边缘概率分布的均值公式为Σ(灰度值k * 对应概率px[k]),而np.dot(px, k)正是对两个一维数组做对应元素相乘后累加,完全匹配这个均值计算逻辑。

简单说,np.dot(px, k)就是用向量点积的方式高效实现了边缘概率分布的均值计算,和手动遍历每个灰度值乘以概率再求和的结果完全一致。

如果Correlation特征结果存在差异,建议检查双方在均值、方差这类基础统计量的计算细节:比如灰度值的取值范围是否一致、边缘概率的求和方向(行/列)是否对应、归一化的时机是否相同等。

内容的提问来源于stack exchange,提问作者patch0110

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 20:39:58