Matplotlib 简明教程
Matplotlib - Image Masking
在 Matplotlib 库中,图像遮罩涉及根据指定掩码有选择地显示图像的部分,该掩码本质上是定义要显示或隐藏的区域的二进制图像。它允许我们应用过滤器或条件以显示或隐藏图像的特定部分。
Types of Image Masks
以下是图像遮罩的类型:
Key Points
-
在 Matplotlib 中进行图像遮罩涉及创建一个与图像具有相同尺寸的遮罩阵列,其中标记了特定区域以隐藏(遮罩)或显示(取消遮罩)图像的部分。
-
遮罩阵列包含布尔值或数值,其中 True 或非零值表示要显示的区域,而 False 或零值表示要隐藏的区域。
-
遮罩允许基于指定的条件或标准对图像的特定部分进行选择性可视化或操作。
Masking the particular region of the Image
假设我们有一张图像,并希望遮罩特定区域,仅基于某些标准显示图像的一部分。
import matplotlib.pyplot as plt
import numpy as np
# Create a sample image (random pixels)
image = np.random.rand(100, 100)
# Create a mask to hide certain parts of the image
mask = np.zeros_like(image)
mask[30:70, 30:70] = 1 # Masking a square region
# Apply the mask to the image
masked_image = np.ma.masked_array(image, mask=mask)
# Display the original and masked images
plt.figure(figsize=(8, 4))
plt.subplot(1, 2, 1)
plt.imshow(image, cmap='gray')
plt.title('Original Image')
plt.axis('off')
plt.subplot(1, 2, 2)
plt.imshow(masked_image, cmap='gray')
plt.title('Masked Image')
plt.axis('off')
plt.show()
Applying mask to an Image
在本文中,这是使用 matplotlib 库遮罩图像的另一种方法。
import matplotlib.pyplot as plt
import numpy as np
# Create a sample image
image_size = 100
img = np.zeros((image_size, image_size, 3), dtype=np.uint8)
img[:, :image_size // 2] = [255, 0, 0] # Set the left half to blue
# Create a binary mask
mask = np.zeros((image_size, image_size), dtype=np.uint8)
mask[:, image_size // 4:] = 1 # Set the right quarter to 1
# Apply the mask to the image
masked_img = img * mask[:, :, np.newaxis]
# Display the original image, mask, and the masked image
plt.figure(figsize=(12, 4))
plt.subplot(131)
plt.imshow(img)
plt.title('Original Image')
plt.axis('off')
plt.subplot(132)
plt.imshow(mask, cmap='gray')
plt.title('Mask')
plt.axis('off')
plt.subplot(133)
plt.imshow(masked_img)
plt.title('Masked Image')
plt.axis('off')
plt.show()