- Scikit Image 教程
- Scikit Image - 简介
- Scikit Image - 图像处理
- Scikit Image - NumPy 图像
- Scikit Image - 图像数据类型
- Scikit Image - 使用插件
- Scikit Image - 图像处理
- Scikit Image - 读取图像
- Scikit Image - 写入图像
- Scikit Image - 显示图像
- Scikit Image - 图像集合
- Scikit Image - 图像堆栈
- Scikit Image - 多图像
Scikit Image - NumPy 图像
NumPy(也称为“数值 Python”)是 Python 中用于数值计算的最重要的基础包之一。NumPy 的核心数据结构是 ndarray(N 维数组),它是由相同数据类型元素组成的同构集合。这些数组可以是任何维度,例如 1D、2D 或更高维度的数组。NumPy 提供了大量数学函数,可以高效地对这些 N 维数组进行操作。
在 scikit-image 中,图像表示为 NumPy ndarrays(多维数组)。scikit-image 库构建在 NumPy 之上,它使用 NumPy 数组来表示图像。因此,scikit-image 库可以有效地执行各种图像处理任务。
将图像表示为 NumPy 数组
将图像表示为 NumPy 数组,提供了一种方便且高效的方式来存储和操作图像数据。
这里,NumPy 数组的维度对应于图像维度,例如高度、宽度和颜色通道。对于灰度图像,数组通常是二维的(高度 x 宽度)。对于彩色图像,数组是三维的(高度 x 宽度 x 3),其中最后一个维度表示红色、绿色和蓝色颜色通道。
示例 1
以下示例演示了如何在 scikit-image 中将彩色图像表示为 NumPy 数组。
from skimage import io # Read an image as a grayscale image img_array = io.imread('Images/Dog.jpg') # Display image properties from the image array print('The following are the properties of the loaded image:') print("Data type of the image object:", type(img_array)) print("Image shape:", img_array.shape) print("Image data type:", img_array.dtype)
输入图像
输出
The following are the properties of the loaded image: Data type of the image object: <class 'numpy.ndarray'> Image shape: (479, 500, 3) Image data type: uint8
示例 2
让我们看看灰度图像的 NumPy 数组表示。
from skimage import io # Read an image as a grayscale image img_array = io.imread('Images/dog.jpg', as_gray=True) # Display image properties from the image array print('The following are the properties of the loaded image:') print("Data type of the image object:", type(img_array)) print("Image shape:", img_array.shape) print("Image data type:", img_array.dtype)
输出
The following are the properties of the loaded image: Data type of the image object: <class 'numpy.ndarray'> Image shape: (479, 500) Image data type: float64
索引和切片
NumPy 的索引和切片功能可用于访问和操作图像数据。通过使用 NumPy 的灵活索引和切片语法,可以裁剪图像、选择特定的颜色通道或对图像中特定区域应用操作。
示例
以下示例演示了如何在 Scikit-image 中使用 NumPy 的索引和切片语法来修改图像。
from skimage import io # Read an image as a grayscale image img_array = io.imread('Images/Tajmahal.jpg') # Get the value of the pixel at the 10th row and 20th column pixel_value = img_array[10, 20] print('The pixel at the 10th row and 20th column of the image array', pixel_value) # Set value 0 to the pixel at the 3rd row and 10th column img_array[3, 10] = 0 # Select a region in the image roi = img_array[100:200, 200:300] # Set the pixel values in the selected region to red (255, 0, 0) roi[:] = (255, 0, 0) # Display the modified image io.imshow(img_array) io.show()
输入图像
输出
运行以上代码将得到以下结果:
The pixel at the 10th row and 20th column of the image array [ 81 97 110]
此外,它还会生成以下图像:
广告