Maison  >  Article  >  développement back-end  >  Comment utiliser les techniques de netteté d’image en Python ?

Comment utiliser les techniques de netteté d’image en Python ?

WBOY
WBOYoriginal
2023-06-04 10:10:383869parcourir

La netteté de l'image est une technique de traitement d'image couramment utilisée qui peut rendre les images plus claires et plus détaillées. En Python, nous pouvons utiliser certaines bibliothèques de traitement d'image courantes pour implémenter des fonctions de netteté d'image. Cet article explique comment utiliser la bibliothèque Pillow, la bibliothèque OpenCV et la bibliothèque Scikit-Image en Python pour la netteté des images.

  1. Utilisez la bibliothèque Pillow pour la netteté des images

La bibliothèque Pillow est une bibliothèque de traitement d'image couramment utilisée en Python, qui fournit une version améliorée de PIL (Python Image Library). La bibliothèque Pillow peut être utilisée pour lire et traiter différents types d'images, telles que JPG, PNG, BMP, etc. Les étapes pour utiliser la bibliothèque Pillow pour la netteté de l'image sont les suivantes :

1) Installez la bibliothèque Pillow

Entrez la commande suivante sur la ligne de commande pour installer la bibliothèque Pillow :

pip install Pillow

2) Lisez l'image

Utilisez le Module Image de la bibliothèque Pillow pour lire l'image. Par exemple, on peut lire une image nommée "test.jpg" :

from PIL import Image

image = Image.open('test.jpg')

3) Améliorer la netteté de l'image

Utilisez le module Filtre de la bibliothèque Pillow pour effectuer des opérations de netteté. Vous pouvez utiliser des filtres tels que le flou, l'amélioration des contours et l'amélioration de la netteté. Ici, nous utilisons le filtre UnsharpMask pour améliorer la netteté de l'image :

from PIL import ImageFilter

sharpened_image = image.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))

Dans le code ci-dessus, le paramètre radius spécifie le rayon de flou, le paramètre percent spécifie le pourcentage de netteté et le paramètre seuil spécifie le seuil de netteté.

4) Enregistrez le résultat

Enfin, utilisez la méthode save() pour enregistrer le résultat sous forme d'une nouvelle image :

sharpened_image.save('sharpened_test.jpg')
  1. Utilisez la bibliothèque OpenCV pour la netteté de l'image

La bibliothèque OpenCV est une bibliothèque de vision par ordinateur open source disponible pour diverses tâches de traitement d’image. Les étapes pour utiliser la bibliothèque OpenCV pour la netteté de l'image sont les suivantes :

1) Installez la bibliothèque OpenCV

Entrez la commande suivante sur la ligne de commande pour installer la bibliothèque OpenCV :

pip install opencv-python

2) Lisez l'image

Utilisez le Fonction imread() de la bibliothèque OpenCV pour lire Prendre des photos. Par exemple, on peut lire une image nommée "test.jpg" :

import cv2

image = cv2.imread('test.jpg')

3) Améliorer la netteté de l'image

Utilisez la fonction Laplacienne de la bibliothèque OpenCV pour améliorer la netteté de l'image. Le code est le suivant :

import cv2

kernel_size = 3
scale = 1
delta = 0
ddepth = cv2.CV_16S

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (3, 3), 0)
dst = cv2.Laplacian(gray, ddepth, ksize=kernel_size, scale=scale, delta=delta)
absdst = cv2.convertScaleAbs(dst)

Dans le code ci-dessus, le paramètre kernel_size spécifie la taille de l'opérateur, le paramètre scale spécifie le facteur de mise à l'échelle, le paramètre delta spécifie le décalage et le paramètre ddegree spécifie la profondeur de sortie.

4) Enregistrez le résultat

Enfin, utilisez la fonction imwrite() pour enregistrer le résultat sous forme d'une nouvelle image :

cv2.imwrite('sharpened_test.jpg', absdst)
  1. Utilisez la bibliothèque Scikit-Image pour la netteté de l'image

La bibliothèque Scikit-Image est un Python Bibliothèque de traitement d'image qui fournit divers algorithmes de traitement d'image. Les étapes pour utiliser la bibliothèque Scikit-Image pour la netteté de l'image sont les suivantes :

1) Installez la bibliothèque Scikit-Image

Entrez la commande suivante dans la ligne de commande pour installer la bibliothèque Scikit-Image :

pip install scikit-image

2) Lire l'image

Utilisez Scikit- Le module io de la bibliothèque d'images lit les images. Par exemple, on peut lire une image nommée "test.jpg" :

from skimage import io

image = io.imread('test.jpg')

3) Améliorer la netteté de l'image

Utilisez le module de transformation de la bibliothèque Scikit-Image pour effectuer l'opération de netteté. Ici, nous utilisons la fonction unsharp_mask() pour améliorer la netteté de l'image :

from skimage import filters

sharpened_image = filters.unsharp_mask(image, radius=2, amount=1.5, multichannel=True)

Dans le code ci-dessus, le paramètre radius spécifie la taille du noyau de convolution, le paramètre montant spécifie le degré de netteté et le paramètre multicanal spécifie si c'est une image en couleur.

4) Enregistrez le résultat

Enfin, utilisez la fonction imsave() du module io pour enregistrer le résultat sous une nouvelle image :

io.imsave('sharpened_test.jpg', sharpened_image)

Conclusion

Cet article présente l'utilisation de la bibliothèque Pillow, de la bibliothèque OpenCV et de Scikit -Méthode Image dans la bibliothèque Python pour la netteté de l'image. Ces bibliothèques fournissent divers algorithmes et fonctions pour traiter les images, que nous pouvons choisir d'utiliser en fonction de nos besoins. La netteté de l’image est une partie importante du traitement de l’image. Elle peut améliorer la qualité et la clarté des images et offre de larges perspectives d’application dans des applications pratiques.

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