登录
首页 >  文章 >  python教程

Python用skimage提取图像技巧

时间:2025-11-10 13:37:06 348浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《Python使用skimage提取图像方法》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

使用skimage可便捷实现图像读取、颜色转换与特征提取:先用io.imread读取图像,通过color.rgb2gray转灰度图,再利用feature.canny进行边缘检测,filters.threshold_otsu实现阈值分割,结合numpy统计像素均值与标准差,最终用io.imsave保存处理结果。

python如何使用skimage包提取图像

使用 skimage(scikit-image)包提取图像信息非常方便,它提供了丰富的函数来读取、处理和分析图像。下面介绍如何用 skimage 读取图像、提取基本特征以及进行简单的预处理操作。

安装与导入

如果尚未安装 skimage,可以通过 pip 安装:

pip install scikit-image

安装完成后,在 Python 中导入常用模块:

from skimage import io, color, filters, feature
import numpy as np

读取图像

使用 io.imread() 可以加载本地或网络图像:

# 读取本地图像
img = io.imread('example.jpg')

# 显示图像(可选)
io.imshow(img)
io.show()

支持格式包括 JPG、PNG、TIFF 等。如果是灰度图,图像数据为二维数组;彩色图为三维数组(高度 × 宽度 × 通道)。

转换颜色空间

常将彩色图像转为灰度图以便后续处理:

# 转为灰度图像
gray_img = color.rgb2gray(img)

也可转为 HSV、LAB 等其他色彩空间:

# 转为 HSV
hsv_img = color.rgb2hsv(img)

提取图像特征

skimage 提供多种方式提取图像中的关键信息:

  • 边缘检测:使用 Sobel 或 Canny 检测算子
    edges = feature.canny(gray_img, sigma=3)
  • 阈值分割:获取前景区域
    thresh = filters.threshold_otsu(gray_img)
    binary = gray_img > thresh
  • 角点检测:如 Harris 角点
    coords = feature.corner_harris(gray_img)
  • 纹理或强度统计:可结合 numpy 分析像素分布
    mean_intensity = np.mean(gray_img)
    std_intensity = np.std(gray_img)

保存提取结果

处理后的图像或掩码可保存到文件:

# 保存二值图像
io.imsave('binary_mask.png', binary.astype(np.uint8) * 255)

# 保存边缘图像
io.imsave('edges.png', edges.astype(np.uint8) * 255)

基本上就这些。通过组合读取、转换和特征提取方法,你可以从图像中有效获取结构化信息,用于分类、分割或目标检测等任务。skimage 接口简洁,适合快速原型开发。

好了,本文到此结束,带大家了解了《Python用skimage提取图像技巧》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>