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

关于skimage.measure.shannon_entropy()的分箱数与直方图计算问询

关于skimage.measure.shannon_entropy()的分箱与直方图计算逻辑

1. 不同类型图像的分箱数

分箱规则完全由输入图像的数据类型决定:

  • 整数类型(含1/2/4字节有符号/无符号灰度图):分箱数等于该数据类型的取值范围总个数,即 np.iinfo(image.dtype).max - np.iinfo(image.dtype).min + 1。例如:
    • uint8(1字节无符号):256个分箱(覆盖0~255)
    • int8(1字节有符号):256个分箱(覆盖-128~127)
    • uint16/int16:65536个分箱
    • uint32/int32:2^32个分箱
  • 浮点类型(如32位浮点灰度图):固定使用256个分箱。

2. 直方图的计算流程

函数会根据图像数据类型分支处理:

整数类型图像

  1. 通过np.iinfo()获取当前数据类型的最小/最大取值
  2. 以「取值范围总个数」作为分箱数,同时指定直方图的统计范围为该类型的min到max,确保每个整数取值对应独立分箱
  3. 调用np.histogram()生成直方图

浮点类型图像

  1. 直接传入bins=256调用np.histogram(),分箱会自动覆盖图像像素值的实际范围,均匀划分为256个区间
  2. 生成直方图后,会过滤掉计数为0的分箱,避免后续概率计算出现log(0)的错误

后续统一流程:将直方图的计数转换为概率(每个分箱计数/总像素数),再通过熵公式 -Σ(prob * log(prob)/log(base)) 计算最终结果,默认以2为对数底。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:47:08