


Comment implémenter le filtrage morphologique de base en Python
Il existe quatre opérations morphologiques les plus élémentaires, à savoir l'érosion, l'expansion, le calcul ouvert et le calcul fermé. `scipy.ndimage implémente ces quatre opérations respectivement sur des tableaux binaires et des tableaux en niveaux de gris
niveaux de gris | ||
---|---|---|
grey_erosion | corrosion | |
grey_dilation | expansion | |
grey_closing | closing (d'abord expansion puis corrosion) | |
grey_opening | opening ( corrosion d'abord puis expansion) |
ij signifie quand l'origine de B BB est à (i, j) , l'ensemble de toutes les valeurs qui valent 1 dans B.
Cette formule signifie que lorsque la structure B est utilisée pour corroder A, lorsque l'origine de B est traduite en pixel (i, j) de l'image A, si B est complètement entouré par la zone de chevauchement des deux, le la valeur est affectée à 1. Sinon, la valeur est 0. Lorsqu'un certain élément dans B vaut 1, si la position correspondante dans A est également 1, alors la valeur en (i, j) est 1. Il s'agit d'un exemple plus intuitif. L'inflation est l'opposé et peut être exprimée commeimport numpy as np import matplotlib.pyplot as plt import scipy.ndimage as sn x = np.zeros([20,20]) x[5:15, 5:15] = 1 x_ero = sn.binary_erosion(x) x_dil = sn.binary_dilation(x) fig = plt.figure() ax = fig.add_subplot(1,3,1) ax.imshow(x) plt.title("original") ax = fig.add_subplot(1,3,2) ax.imshow(x_ero) plt.title("erosion") ax = fig.add_subplot(1,3,3) ax.imshow(x_dil) plt.title("dilation") plt.show()
Morphologie en niveaux de gris
et effectue une corrosion, une expansion. et les opérations d'ouverture et de fermeture en séquence.
x = np.zeros([20,20]) x[5:15, 5:15] = 1 x[10:12,10:12] = 0 x[2:4, 2:4] = 1 x_open = sn.binary_opening(x) x_close = sn.binary_closing(x) fig = plt.figure() ax = fig.add_subplot(1,3,1) ax.imshow(x) plt.title("original") ax = fig.add_subplot(1,3,2) ax.imshow(x_open) plt.title("opening") ax = fig.add_subplot(1,3,3) ax.imshow(x_close) plt.title("closing") plt.show()
scipy
Liste des paramètres
Les paramètres de la fonction binaire et de la fonction en niveaux de gris ne sont pas les mêmes. En prenant l'opération de fermeture comme exemple ci-dessous, tous les paramètres des fonctions binaires et en niveaux de gris, à l'exception de l'entrée d'entrée, sont communs à. les deux.
structure est un type de tableau, représentant l'élément de construction, qui peut être compris comme un modèle de convolution- la sortie est un tableau avec les mêmes dimensions que l'entrée, et les résultats peuvent être enregistrés
- Les autres paramètres du filtrage morphologique binaire sont les suivants
from scipy.misc import ascent img = ascent() funcs = { "original": lambda x, tmp:x, "erosion" : sn.grey_erosion, "dilation" : sn.grey_dilation, "opening" : sn.grey_opening, "closing" : sn.grey_closing } fig = plt.figure() for i, key in enumerate(funcs): ax = fig.add_subplot(2,3,i+1) plt.imshow(funcs[key](img, (10,10)), cmap=plt.cm.gray) plt.title(key) plt.show()
- mask mask array, qui est un tableau de bool tapez, et la position correspondant à False ne changera pas
- brute_force Si elle est False, seule la valeur qui a changé lors de la dernière itération sera mise à jour
- la taille est le modèle de filtre
binary_closing(input, iterations=1, mask=None, border_value=0, brute_force=False)
Copier après la connexion- mode facultatif réflexion, constante, le plus proche, miroir, enveloppement, méthode de remplissage des bords
- valeur de remplissage des bords cval
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment les scripts Python effacent-ils la sortie en position de curseur à un emplacement spécifique? Lors de l'écriture de scripts Python, il est courant d'effacer la sortie précédente à la position du curseur ...

Utilisation alternative des annotations des paramètres Python Dans la programmation Python, les annotations des paramètres sont une fonction très utile qui peut aider les développeurs à mieux comprendre et utiliser les fonctions ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Comment utiliser GO ou Rust pour appeler les scripts Python pour réaliser une véritable exécution parallèle? Récemment, j'ai utilisé Python ...

Python Binary Library (.WHL) Méthode de téléchargement explore les difficultés que de nombreux développeurs Python rencontrent lors de l'installation de certaines bibliothèques sur les systèmes Windows. Une solution courante ...

Utilisez le module de sous-processus de Python pour exécuter WMIC ...
