SuperAPI AI 工具集

scikit-image

数据与分析

查看项目

更新于 10-15 16:41

技能介绍

scikit-image 是 Python 的科学图像处理库,构建于 NumPy、SciPy 和 Cython 之上,专注研究级图像分析。图像被视为 NumPy 数组:灰度图为二维 (M, N),彩色图为 (M, N, 3),多通道三维体数据为 (P, M, N, C)。坐标原点 (0, 0) 在左上角,坐标以 (行, 列) 表示。数据类型与范围包括 uint8(0–255)、uint16(0–65535)、float(-1 到 1 或 0 到 1)。

主要用途:科学图像预处理(降噪、对比度增强)、图像分割(分离细胞、颗粒或感兴趣区域)、特征提取(边缘、角点、斑点、纹理)、几何变换(缩放、旋转、变形)、形态学操作(细化、骨架化、孔洞填充)、对象属性测量(面积、周长、离心率)、退化图像恢复(反卷积、修复)。

安装:pip install scikit-image。常用导入:import numpy as np;from skimage import io, filters, segmentation, feature, measure, morphology, color, util。基本流程为读取图像、必要时转灰度、滤波处理,再用 io.imshow 与 io.show 显示。

核心模块:skimage.filters 提供降噪与边缘检测、Otsu 等自动阈值;skimage.morphology 提供腐蚀、膨胀、开闭运算、骨架化与去除小对象;skimage.segmentation 提供分水岭、SLIC 超像素等;skimage.feature 提供 LBP 纹理、Harris 角点、DoG 斑点检测;skimage.measure 提供连通域标记、regionprops 属性与轮廓提取。

使用建议:用 util.img_as_float、util.img_as_ubyte 做类型转换以自动缩放,避免 image / 255.0 或 astype(float) 造成数值范围错误;多数特征提取与分割算法期望二维灰度数组;处理前检查 image.shape 与 image.dtype;用 NumPy 向量化代替逐像素循环;先滤波再分割;用 measure.label 统计连通对象。注意 scikit-image 使用 (行, 列) 坐标,与 Matplotlib 的 (x, y) 绘图顺序不同,可视化时需显式交换。函数通常返回新数组,不修改输入。多通道图像不直接套用部分滤波器,需转灰度或按通道处理;大噪声图像先 remove_small_objects 再标记以节省内存。性能上许多函数已由 Cython 优化,批量处理可用 joblib 或 multiprocessing 并行。

官方文档:https://scikit-image.org/;用户指南:https://scikit-image.org/docs/stable/user_guide.html。