Comment utiliser Python pour réparer les défauts des images
Introduction :
Dans la vie quotidienne, nous rencontrons souvent des images défectueuses, telles que du bruit, des rayures, etc. Ces imperfections peuvent affecter l'esthétique de l'image et, pour certaines situations nécessitant un traitement précis, elles peuvent nous empêcher d'obtenir les informations correctes. Utiliser Python pour réparer les défauts des images est une méthode efficace. Cet article explique comment utiliser Python pour réparer les défauts des images et joint des exemples de code pertinents.
Étape 1 : Importer les bibliothèques nécessaires
Tout d'abord, nous devons importer les bibliothèques nécessaires, notamment les suivantes :
importer cv2
importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
Parmi eux, cv2 est l'OpenCV bibliothèque, Pour le traitement des images ; numpy est une bibliothèque pour le traitement des tableaux ; matplotlib.pyplot est utilisé pour l'affichage des images.
Étape 2 : Lire l'image
Ensuite, nous devons lire l'image qui doit être réparée. Utilisez la fonction imread() dans la bibliothèque cv2 pour lire et stocker l'image sous forme de tableau numpy.
img = cv2.imread('image.jpg')
Étape 3 : Prétraiter l'image
Avant de réparer les défauts, nous devons effectuer un prétraitement sur l'image. Les étapes de prétraitement courantes incluent la réduction du bruit et l’extraction des bords.
La réduction du bruit peut être effectuée à l'aide de la fonction GaussianBlur() de la bibliothèque cv2. L'exemple de code est le suivant :
img_blur = cv2.GaussianBlur(img, (5, 5), 0)
L'extraction des bords peut être effectuée à l'aide de la fonction Canny() dans la bibliothèque cv2. L'exemple de code est le suivant :
edges = cv2.Canny(img, seuil1, seuil2)
Étape 4 : Déterminer la zone défectueuse
Selon les résultats du prétraitement, nous pouvons déterminer la zone défectueuse grâce à certaines méthodes. Les méthodes courantes incluent la segmentation de seuil et la détection de contour.
La segmentation par seuil peut être effectuée à l'aide de la fonction seuil() de la bibliothèque cv2. L'exemple de code est le suivant :
ret, img_thresh = cv2.threshold(img_gray, Threuil, maxValue, cv2.THRESH_BINARY)
La détection de contour peut être effectuée à l'aide de la fonction findContours() dans la bibliothèque cv2. L'exemple de code est le suivant :
contours, hierarchie = cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
Étape 5 : Réparation des défauts
Avec les informations sur les zones défectueuses, nous pouvons réparer ces zones via certains algorithmes . Les algorithmes courants incluent le filtrage moyen et le filtrage médian.
Le filtrage moyen peut être effectué à l'aide de la fonction flou() de la bibliothèque cv2. L'exemple de code est le suivant :
img_repair = cv2.blur(img, (5, 5))
Le filtrage médian peut être effectué à l'aide de la fonction medianBlur() dans la bibliothèque cv2. L'exemple de code est le suivant :
img_repair = cv2.medianBlur(img, 5)
Étape 6 : Afficher les résultats de la réparation
Enfin, nous pouvons utiliser la fonction imshow() dans la bibliothèque matplotlib.pyplot pour afficher le fichier réparé. image. L'exemple de code est le suivant :
plt.imshow(img_repair[:,:,::-1])
plt.axis("off")
plt.show()
Version complète de l'exemple de code :
importer cv2
importer numpy en tant que np
importer matplotlib.pyplot en tant que plt
img = cv2.imread('image.jpg')
img_blur = cv2.GaussianBlur(img, ( 5, 5), 0)
img_gray = cv2.cvtColor(img_blur, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(img_gray, 100, 200)
contours, hierarchie = cv2.findContours(edges , cv2.RETR_LIST, cv 2 .CHAIN_APPROX_SIMPLE)
img_repair = cv2.blur(img, (5, 5))
plt.imshow(img_repair[:,:,::- 1])
plt.axis ("off")
plt.show()
Conclusion :
Cet article présente les étapes d'utilisation de Python pour réparer les défauts des images et joint des exemples de code pertinents. En utilisant ces méthodes, nous pouvons réparer efficacement le bruit, les rayures et autres défauts de l’image et restaurer l’image avec des effets visuels normaux. Dans les applications pratiques, des méthodes de prétraitement et des algorithmes de réparation appropriés peuvent être sélectionnés en fonction de besoins spécifiques et des caractéristiques de l'image, puis ajustés et optimisés en fonction des effets réels. J'espère que cet article pourra vous apporter de l'aide lorsque vous traitez des images défectueuses.
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!