Maison >développement back-end >Tutoriel Python >Comment colorer des images segmentées à l'aide de Python

Comment colorer des images segmentées à l'aide de Python

WBOY
WBOYoriginal
2023-08-27 09:55:471143parcourir

Comment colorer des images segmentées à laide de Python

Comment utiliser Python pour colorer des images segmentées

Lorsque nous traitons des images, nous devons parfois séparer les différentes parties de couleur de l'image pour un traitement ou une analyse séparée. Ceci peut être réalisé en utilisant certaines bibliothèques de traitement d'images du langage de programmation Python. Cet article explique comment utiliser Python pour colorer des images de segments de manière simple, avec des exemples de code joints.

Étape 1 : Installez les bibliothèques nécessaires

Tout d'abord, nous devons installer Pillow, la bibliothèque de traitement d'image Python. Exécutez la commande suivante dans le terminal ou l'invite de commande pour installer la bibliothèque Pillow :

pip install pillow

Étape 2 : Importez les bibliothèques requises

Dans le code Python, nous devons importer la bibliothèque Pillow ainsi que d'autres bibliothèques nécessaires, comme indiqué ci-dessous :

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

Étape 3 : Charger l'image

Ensuite, nous devons charger l'image à segmenter en couleur. Utilisez la fonction Image.open() de la bibliothèque Pillow pour charger le fichier image et le convertir en tableau NumPy pour un traitement ultérieur. L'exemple de code est le suivant :

image_path = "image.jpg"  # 图像文件的路径
image = Image.open(image_path)
image_array = np.array(image)

Étape 4 : Segmentation des couleurs

Une fois que nous avons chargé l'image et l'avons convertie en un tableau NumPy, nous pouvons utiliser la fonctionnalité de la bibliothèque NumPy pour segmenter l'image en couleur. L'exemple de code suivant segmentera l'image en fonction de la valeur RVB de la couleur :

red_mask = (image_array[:, :, 0] > 100)  # 红色通道大于100的像素点为True,其余为False
green_mask = (image_array[:, :, 1] < 50)  # 绿色通道小于50的像素点为True,其余为False
blue_mask = (image_array[:, :, 2] < 75)  # 蓝色通道小于75的像素点为True,其余为False

# 创建一个与图像大小相同的全黑图像
segmented_image = np.zeros_like(image_array)

# 使用颜色掩码将分割后的像素点赋值给新图像
segmented_image[red_mask] = image_array[red_mask]
segmented_image[green_mask] = image_array[green_mask]
segmented_image[blue_mask] = image_array[blue_mask]

Étape 5 : Afficher l'image segmentée

Enfin, nous pouvons utiliser la bibliothèque Matplotlib pour afficher l'image segmentée. L'exemple de code suivant affiche l'image divisée à l'écran :

plt.imshow(segmented_image)
plt.axis("off")  # 关闭坐标轴
plt.show()

Après avoir terminé les étapes ci-dessus, nous pouvons exécuter le code et voir l'image divisée en couleurs. En fonction de vos besoins, vous pouvez personnaliser vos règles de segmentation des couleurs en fonction des valeurs des différents canaux de couleurs de l'image.

Le code complet est le suivant :

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt

image_path = "image.jpg"  # 图像文件的路径
image = Image.open(image_path)
image_array = np.array(image)

red_mask = (image_array[:, :, 0] > 100)  # 红色通道大于100的像素点为True,其余为False
green_mask = (image_array[:, :, 1] < 50)  # 绿色通道小于50的像素点为True,其余为False
blue_mask = (image_array[:, :, 2] < 75)  # 蓝色通道小于75的像素点为True,其余为False

segmented_image = np.zeros_like(image_array)

segmented_image[red_mask] = image_array[red_mask]
segmented_image[green_mask] = image_array[green_mask]
segmented_image[blue_mask] = image_array[blue_mask]

plt.imshow(segmented_image)
plt.axis("off")  # 关闭坐标轴
plt.show()

Grâce aux étapes ci-dessus, nous pouvons facilement utiliser Python pour colorer des images segmentées. En fonction des besoins spécifiques et des caractéristiques de l'image, vous pouvez personnaliser les règles de segmentation des couleurs ainsi que le traitement et l'analyse ultérieurs de l'image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn