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

skimage调用regionprops_table提取axis_major_length报KeyError如何解决

问题解决指南

1 KeyError报错修复

你遇到的KeyError: 'axis_major_length'是scikit-image的版本兼容问题:

  • 0.19.0及以上版本的长/短轴属性名为axis_major_length、axis_minor_length
  • 低于0.19.0的版本对应属性名为major_axis_length、minor_axis_length

可选择任意一种方案修复:

  • 升级scikit-image到最新版本:pip install scikit-image --upgrade
  • 直接将属性名替换为旧版本命名即可

2 提前过滤小面积区域实现

regionprops_table不支持直接传入过滤条件,你可以通过遍历regionprops返回的连通域对象,先筛掉小面积区域后再提取属性生成DataFrame,参考代码如下:

import pandas as pd
from skimage import measure

# 生成连通域标签图
label_image = measure.label(image > threshold, connectivity=image.ndim)
# 按需配置要提取的属性,新版本可替换为axis_major_length、axis_minor_length
target_properties = ['area', 'major_axis_length', 'minor_axis_length']

# 遍历连通域先过滤再提取属性
valid_region_list = []
for region in measure.regionprops(label_image, intensity_image=image):
    # 提前过滤掉面积小于25的区域
    if region.area > 25:
        valid_region_list.append({prop: getattr(region, prop) for prop in target_properties})

# 直接生成清洗后的DataFrame
df = pd.DataFrame(valid_region_list)

该方案既不需要生成全量数据后再做清洗,也能避免极小连通域计算轴长时可能出现的异常问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:54:05