Processus d'image scipy

Processus d'image scipy

Le traitement d'image est l'un des modules essentiels qui doivent être disponibles dans chaque langue de programmation, surtout lorsqu'il s'agit d'apprentissage automatique ou d'apprentissage en profondeur. Le langage de programmation Python est fortement recommandé pour toutes sortes d'apprentissage automatique et d'apprentissage en profondeur, et en ce qui concerne le traitement d'image, Python fournit la bibliothèque Scipy. La bibliothèque Scipy à Python a un sous-module Ndimage spécifiquement dédié au traitement d'image dans le langage de programmation Python. Dans cet article, nous expliquerons ce qu'est le traitement d'image et comment il peut être fait en utilisant le sous-module Ndimage de la bibliothèque Scipy.

Qu'est-ce que le traitement d'image dans le langage de programmation Python?

Tout travail effectué avec une image est connu sous le nom de traitement d'image, je.e., lire, écrire, modifier, manipuler, etc. fait sur des images pour en extraire des informations significatives. Pour manipuler ou transformer des images, le langage de programmation Python est le plus souvent utilisé. Les tâches les plus courantes qui peuvent être effectuées pour le traitement d'image sont les images, la rotation, le flip, le recadrage, l'affûter, le dénoise, l'étiquette, l'extraction de fonctionnalités, etc. Toutes ces fonctions peuvent être facilement effectuées sur des images avec la bibliothèque Scipy et son module Ndimage.

Qu'est-ce que Scipy Ndimage?

Le Ndimage signifie N-Dimensional Image et est fourni sous forme de module par la bibliothèque Scipy. Il est composé d'une variété de fonctions Traitement et analyse d'image FMOR. Plusieurs tâches liées au traitement d'image, i.e., Extraction des fonctionnalités, entrée, sortie, retournement, rotation, classification, etc., peut être effectué avec le module Ndimage. Le package Ndimage de la bibliothèque Scipy est dédié au fonctionnement avec des tableaux de n dimensions. Il comprend des fonctions pour la mesure des objets, la morphologie binaire, le filtrage linéaire, l'interpolation B-Spline et le filtrage non linéaire. Nous allons expliquer la fonction du module Ndimage avec des exemples pour vous aider à comprendre comment ces fonctions fonctionnent.

Exemple 1:

Ici, nous expliquerons la méthode «corrélé» du module Ndimage. La méthode corrélat du module Ndimage fonctionne comme une corrélation multidimensionnelle. La méthode «corrélée» est utilisée pour corréler l'image avec le noyau donné. La méthode «corrélée» pour le traitement d'image est utilisée pour déplacer le noyau sur l'image et calculer la somme du produit à chaque emplacement. Voir l'exemple de code donné dans l'extrait ci-dessous:

Importer Numpy comme NP
de Scipy.ndimage l'importation corrélée
Imprimer (corréler (NP.arange (100), [2, 4.5]))

Ici, nous avons commencé par l'importation de la bibliothèque Numpy en tant que NP dans le programme afin que nous puissions utiliser davantage ses fonctions pertinentes dans le programme. Après cela, nous avons importé la bibliothèque Scipy avec son module Ndimage et sa méthode corrélée. N'oubliez pas que vous devez inclure toutes les bibliothèques et modules du programme pour utiliser leurs méthodes et fonctions pertinentes. Si vous n'incluez pas les bibliothèques, vous finirez par traiter avec des erreurs et des bogues. Les fonctions et les méthodes du langage de programmation Python ne fonctionnent pas sans importer leurs bibliothèques parents dans le programme.

Toutes les bibliothèques requises sont importées et nous pouvons commencer à travailler sur le code principal. Notez que nous avons utilisé la fonction d'arrangement avec la variable NP, qui représente la bibliothèque Numpy, pour faire un tableau de 100 valeurs. Les poids [2, 4.5] sont attribués au tableau, et le tableau et le poids sont transmis à la fonction corrélée. Voyons maintenant quel array a été produit par le ndimag.fonction corrélée. La sortie est donnée ci-dessous:

Exemple 2:

Dans l'exemple précédent, vous devez avoir remarqué qu'en dépit de donner du poids à un numéro de point flottant, le tableau produit est en nombres entiers. C'est parce que, par défaut, la fonction corrélée produit un numéro entier; Par conséquent, vous devez spécifiquement mentionner comment vous souhaitez obtenir votre tableau de sortie. Voyons comment vous pouvez y parvenir en vérifiant les lignes de code indiquées dans l'extrait de code ci-dessous:

Importer Numpy comme NP
de Scipy.ndimage l'importation corrélée
Imprimer (corréler (NP.arange (100), [2, 4.5], sortie = np.float64))

Encore une fois, les bibliothèques et modules requis sont importés dans le programme, puis le ndimage.La fonction corrélée est appelée. Comme vous pouvez le voir, le type de données du tableau de sortie est fourni comme «FLAOT64», ce qui signifie que le tableau résultant aura des numéros de points flottants. Voir le tableau de sortie résultant donné dans la capture d'écran ci-dessous:

Exemple 3:

Comme nous le savons, les images sont représentées par des tableaux multidimensionnels car chaque nombre dans le tableau représente un pixel de l'image. Donc, ici, nous utilisons la fonction corrélée pour le tableau 1D. Pour travailler avec le noyau 1D et déplacer le filtre sur l'image, nous avons la fonction corrélée1D. Voir l'exemple de code donné dans l'extrait de code ci-dessous:

Importer Numpy comme NP
de Scipy.ndimage Import Correlate1d
arr = [1, 2, 2, 1, 1, 2]
imprimer (corrélé1d (arr, [1, 2, 1]))

Ici, nous expliquerons comment gérer l'origine du noyau avec la fonction corrélée1d. Normalement, l'origine du noyau est au centre, qui est calculée en divisant les dimensions du noyau par 2. Dans l'extrait de code donné ci-dessus, vous pouvez voir que les bibliothèques requises sont d'abord importées dans le programme, puis un tableau nommé ARR est déclaré contenant six valeurs. Le tableau avec ses poids correspondants a été transmis à la fonction Correlate1d. Voyons maintenant comment la fonction Correlate1d trouve l'origine du noyau du tableau donné. Le résultat est ci-dessous:

Exemple 4:

Premièrement, nous avons appris comment la fonction Correlate1D trouve l'origine du noyau; Maintenant, apprenons comment nous pouvons changer explicitement l'origine du noyau. Parfois, il est nécessaire de sélectionner l'origine d'un noyau différent de celle du centre, donc, pour cela, nous avons le paramètre «Origin». Le paramètre d'origine transmis à la fonction Correlate1D vous permet de choisir commodément une origine différente du noyau.

Importer Numpy comme NP
de Scipy.ndimage Import Correlate1d
arr = [1, 2, 2, 1, 1, 2]
Imprimer (Correlate1d (arr, [1, 2, 1], origine = -1))

Le résultat du choix d'un noyau différent pour le filtre est donné dans la sortie ci-dessous:

Exemple 5:

Apprenons à remodeler le tableau au besoin. Les images peuvent être remodelées, modifiées, tournées, recadrées, etc. avec les fonctions de traitement d'image. Ici, nous vous guiderons sur la façon de remodeler le tableau avec la fonction Correlate1D. La fonction de remodelage est fournie par la bibliothèque Numpy, il est donc utilisé avec la variable NP. Voir l'exemple de code donné dans l'extrait de code ci-dessous:

Importer Numpy comme NP
de Scipy.ndimage Import Correlate1d
arr = np.Arange (100).Reshape (20, 5)
imprimer (corrélé1d (arr, [1, 2, 1]))

Le tableau produit contiendra 100 éléments en 20 lignes et 5 colonnes. Voir le tableau résultant ci-dessous:

Conclusion

Dans cet article, nous avons appris le traitement d'image dans le langage de programmation Python. Le traitement d'image est une caractéristique très essentielle de tout langage de programmation car le travail avec les images est devenu plus répandu que de travailler avec des données brutes. Par conséquent, Python fournit des fonctions pour travailler avec des images dans diverses bibliothèques comme Numpy, Scipy, etc. Ici, nous avons utilisé le module Ndimage avec des fonctions corrélées et corrélées1D pour travailler pour le traitement d'image avec des tableaux multidimensionnels.