Scikit Image - 读取图像
读取图像是使用图像处理工具执行裁剪、调整大小、旋转或应用滤镜等操作时的基本步骤。读取图像的过程包括从图像文件中捕获像素值和元数据,并将其表示为合适的数据结构,例如 NumPy 数组或矩阵。
在 Scikit-image 库中,io 模块提供了一个函数 imread(),用于将图像文件作为 NumPy 数组加载到内存中。将图像作为 NumPy 数组加载到内存后,我们就可以访问 Scikit-image 中可用的各种图像处理函数,以执行过滤、分割、特征提取等任务。
imread() 方法
Scikit-image 中的 io.imread() 方法能够读取各种格式的图像,包括 JPEG、PNG、TIFF、BMP 等。该函数内部根据特定的图像格式使用不同的库,例如 imageio、PIL 或 tifffile。
语法
以下是此方法的语法和参数 −
skimage.io.imread(fname, as_gray=False, plugin=None, **plugin_args)
- Fname − 表示文件名或路径或图像 URL 的字符串。
- as_gray(可选) − 如果设置为 True,它会将彩色图像转换为以 64 位浮点数表示的灰度图像。已经是灰度格式的图像不会被转换。
- plugin(可选) −指定用于读取图像的插件的字符串。如果未提供 plugin 参数,该函数将自动尝试不同的插件,从 imageio 开始,直到找到合适的插件。但是,如果文件名 (fname) 具有".tiff"扩展名,则默认使用 tifffile 插件。
- **plugin_args(可选) − 传递给指定插件的附加关键字参数。
返回值
该方法返回表示图像的 NumPy 数组。该数组包含像素值,其形状与图像的尺寸相对应。图像的色带或通道存储在数组的第三维中。
例如,灰度图像的尺寸为 MxN,RGB 图像的尺寸为 MxNx3,RGBA 图像的尺寸为 MxNx4
示例 1
以下示例演示如何使用文件名加载图像。
import skimage from skimage import io # 读取图像 image = io.imread('Images/logo.png') # 从图像数组显示图像属性 print('以下是加载的图像的属性:') print("图像形状:", image.shape) print("图像数据类型:", image.dtype) print("颜色通道数:", image.shape[2])
输入图像

输出
以下是加载的图像的属性: 图像形状:(225, 225, 4) 图像数据类型:uint8 颜色通道数:4
示例 2
以下示例演示如何使用图像 URL 加载图像。
import skimage from skimage import io # 读取图像 image = io.imread('https://www.tutorialspoint.com/images/logo.png') # 从图像数组中显示图像属性 print('以下是加载图像的属性:') print("图像形状:", image.shape) print("图像数据类型:", image.dtype) print("颜色通道数:", image.shape[2])
输入图像

输出
以下是加载图像的属性: 图像形状:(140, 568, 3) 图像数据类型:uint8 颜色通道数:3
示例 3
以下示例演示了如何使用 imread() 方法的 as_gray 参数将彩色图像转换为灰度图像。
import skimage from skimage import io # 读取图像 image = io.imread('https://www.tutorialspoint.com/images/logo.png', as_gray=True) # 从图像数组中显示图像属性 print('以下是加载图像的属性:') print("图像形状:", image.shape) print("图像数据类型:", image.dtype)
输出
以下是加载图像的属性: 图像形状:(140, 568) 图像数据类型:float64