You need to enable JavaScript to run this app. 基于Otsu阈值和Skimage的图像感兴趣区域(ROI)属性计算方法咨询
优惠活动
大模型
产品
解决方案
定价
更多

基于Otsu阈值和Skimage的图像感兴趣区域(ROI)属性计算方法咨询

实现方案

你当前的需求可以直接通过两步完成,skimage.measure.regionprops完全适配该场景,专门用于计算二值图像中连通区域的各类形态、灰度属性。


步骤1:清除零散噪点

你提到的零散小像素噪点可以用skimage.morphology.remove_small_objects快速清理,该函数会自动删除像素数小于设定阈值的连通区域,无需额外复杂操作。如果去噪后还有边缘毛刺,可搭配形态学开运算进一步优化。

步骤2:计算目标区域属性

给去噪后的二值图标注连通域后,直接调用regionprops即可提取你需要的所有属性,注意如果要计算mean_intensity需要传入原始灰度图作为参数。


完整可运行代码(直接接在你现有代码之后即可)

from skimage.morphology import remove_small_objects
from skimage import measure

# 去噪:min_size为最小保留的连通区域像素数,可根据实际噪点大小灵活调整
cleaned_img = remove_small_objects(thresholded_img, min_size=200)
# 可取消下方注释查看去噪效果
# plt.imshow(cleaned_img, cmap='gray')

# 标记连通区域
label_img = measure.label(cleaned_img)
# 计算所有连通区域属性,传入原始灰度图用于计算平均灰度
props = measure.regionprops(label_img, intensity_image=image)

# 取面积最大的连通区域作为目标栗色区域
target_region = max(props, key=lambda x: x.area)

# 提取所需属性
area = target_region.area
mean_intensity = target_region.mean_intensity
solidity = target_region.solidity

# 输出结果
print(f"目标区域面积:{area} 像素")
print(f"目标区域平均灰度:{mean_intensity:.2f}")
print(f"目标区域solidity:{solidity:.4f}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 10:36:06