Maison >développement back-end >Tutoriel Python >Comment définir un seuil pour segmenter les images à l'aide de Python
Comment utiliser Python pour effectuer une segmentation par seuil sur des images
Introduction :
La segmentation par seuil est une méthode de traitement d'image simple et efficace, qui peut diviser les pixels de l'image en deux catégories différentes en fonction de leurs valeurs en niveaux de gris. Il est largement utilisé dans le traitement d’images, comme la détection de cibles, l’extraction de contours, l’amélioration d’images, etc. Cet article expliquera comment utiliser la bibliothèque OpenCV en Python pour la segmentation de seuil, avec des exemples de code pertinents.
Étape 1 : Importez les bibliothèques requises
L'utilisation de Python pour le traitement d'images nécessite d'abord d'importer les bibliothèques pertinentes. Cet article utilise la bibliothèque OpenCV pour le traitement des images, vous devez donc utiliser le code suivant pour importer la bibliothèque OpenCV :
import cv2 import numpy as np
Étape 2 : Lire l'image
Ensuite, nous devons lire le fichier image à traiter. L'image peut être lue à l'aide de la fonction cv2.imread()
dans OpenCV, comme indiqué ci-dessous : cv2.imread()
函数来读取图像,如下所示:
image = cv2.imread("image.jpg")
步骤三:转换为灰度图像
阈值分割需要将图像转换为灰度图像。可以使用cv2.cvtColor()
函数将读取的彩色图像转换为灰度图像,代码如下:
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
步骤四:应用阈值分割
现在可以应用阈值分割算法来将图像分割成不同的类别。OpenCV提供了几种不同的阈值分割方法,本文将介绍最常用的全局阈值分割方法,即固定阈值分割。
首先,我们需要选择一个阈值。可以手动选择阈值,也可以使用Otsu算法自动选择阈值。本文将使用Otsu算法自动选择阈值,代码如下:
ret, threshold_image = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.threshold()
函数返回两个值:阈值和分割后的二值图像。在这个例子中,我们使用Otsu算法来自动选择阈值。
步骤五:显示结果
最后,我们可以使用cv2.imshow()
cv2.imshow("Threshold Image", threshold_image) cv2.waitKey(0) cv2.destroyAllWindows()Étape 3 : Convertir en image en niveaux de gris
La segmentation par seuil nécessite de convertir l'image en image en niveaux de gris. Vous pouvez utiliser la fonction cv2.cvtColor()
pour convertir l'image couleur lue en une image en niveaux de gris :
import cv2 import numpy as np # 读取图像 image = cv2.imread("image.jpg") # 转换为灰度图像 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 应用阈值分割 ret, threshold_image = cv2.threshold(gray_image, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) # 显示结果 cv2.imshow("Threshold Image", threshold_image) cv2.waitKey(0) cv2.destroyAllWindows()
Étape 4 : Appliquer la segmentation du seuil
Vous pouvez maintenant appliquer le seuil. algorithme de segmentation pour segmenter l'image en différentes catégories. OpenCV propose plusieurs méthodes de segmentation à seuil différentes. Cet article présentera la méthode de segmentation à seuil global la plus couramment utilisée, à savoir la segmentation à seuil fixe.
cv2.threshold()
La fonction renvoie deux valeurs : le seuil et l'image binaire segmentée. Dans cet exemple, nous utilisons l'algorithme Otsu pour sélectionner automatiquement le seuil. 🎜🎜Étape 5 : Afficher les résultats🎜Enfin, nous pouvons utiliser la fonction cv2.imshow()
pour afficher l'image traitée. Le code est le suivant : 🎜rrreee🎜Exemple de code complet : 🎜rrreee🎜. Conclusion : 🎜Cet article décrit comment utiliser la bibliothèque OpenCV en Python pour la segmentation par seuil, y compris l'importation des bibliothèques requises, la lecture de l'image, la conversion en images en niveaux de gris, l'application de la segmentation par seuil et l'affichage des résultats. La segmentation par seuil est une méthode de traitement d'image simple et efficace qui peut binariser les images selon les besoins pour un traitement ou une analyse ultérieure. En maîtrisant ces étapes de base, dans les tâches réelles de traitement d'image, nous pouvons effectuer la segmentation d'image selon les besoins et l'appliquer à la détection de cibles, à l'extraction de contours, etc. 🎜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!