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

# Read an image
image = io.imread('Images/logo.png')

# Display image properties from the image array
print('The following are the properties of the loaded image:')
print("Image shape:", image.shape)
print("Image data type:", image.dtype)
print("Number of color channels:", image.shape[2])

输入图像

Logos

输出

The following are the properties of the loaded image:
Image shape: (225, 225, 4)
Image data type: uint8
Number of color channels: 4

示例 2

以下示例演示如何使用图像 URL 加载图像。

import skimage
from skimage import io

# Read an image
image = io.imread('https://tutorialspoint.com/images/logo.png')

# Display image properties from the image array
print('The following are the properties of the loaded image:')
print("Image shape:", image.shape)
print("Image data type:", image.dtype)
print("Number of color channels:", image.shape[2])

输入图像

Logos

输出

The following are the properties of the loaded image:
Image shape: (140, 568, 3)
Image data type: uint8
Number of color channels: 3

示例 3

以下示例演示如何通过使用 imread() 方法的 as_gray 参数将彩色图像转换为灰度图像。

import skimage
from skimage import io

# Read an image
image = io.imread('https://tutorialspoint.com/images/logo.png', as_gray=True)

# Display image properties from the image array
print('The following are the properties of the loaded image:')
print("Image shape:", image.shape)
print("Image data type:", image.dtype)

输出

The following are the properties of the loaded image:
Image shape: (140, 568)
Image data type: float64
广告