Maison > développement back-end > Tutoriel Python > Strides peut-il améliorer l'efficacité des filtres à moyenne mobile dans le traitement des images ?

Strides peut-il améliorer l'efficacité des filtres à moyenne mobile dans le traitement des images ?

Susan Sarandon
Libérer: 2024-10-19 12:40:29
original
798 Les gens l'ont consulté

Can Strides Enhance the Efficiency of Moving Average Filters in Image Processing?

Utiliser les foulées pour un filtre de moyenne mobile efficace

Récemment, les approches basées sur la foulée ont attiré l'attention pour leur efficacité dans la mise en œuvre de filtres de moyenne mobile. Dans ce contexte, nous explorons comment les progrès peuvent être utilisés pour améliorer les performances de tels filtres, en allant au-delà des méthodes plus traditionnelles basées sur la convolution. Plus précisément, nous nous concentrons sur la mise en œuvre d'un filtre moyen mobile connecté à 8 voisins qui prend en compte les 9 pixels environnants pour chaque pixel focal.

À l'aide de foulées, nous pouvons créer une vue du tableau d'origine qui correspond à la rangée supérieure de le noyau du filtre. En appliquant une opération de roulis le long de l'axe vertical, nous pouvons obtenir la rangée du milieu du noyau et l'ajouter à la vue initialement créée. Ce processus est répété pour obtenir la ligne inférieure du noyau, et la somme de ces lignes est ensuite divisée par la taille du filtre pour calculer la moyenne pour chaque pixel.

Pour illustrer cette approche, considérons l'implémentation suivante :

import numpy, scipy

filtsize = 3
a = numpy.arrange(100).reshape((10, 10))
b = numpy.lib.stride_tricks.as_strided(a, shape=(a.size, filtsize), strides=(a.itemsize, a.itemsize))
for i in range(0, filtsize - 1):
    if i > 0:
        b += numpy.roll(b, -(pow(filtsize, 2) + 1) * i, 0)
filtered = (numpy.sum(b, 1) / pow(filtsize, 2)).reshape((a.shape[0], a.shape[1]))
Copier après la connexion

En termes plus généraux, définir une fonction qui effectue l'opération de fenêtre déroulante selon des dimensions spécifiées permet la mise en œuvre efficace de filtres à moyenne mobile, même dans des tableaux multidimensionnels. Cependant, il est important de noter que même si les approches basées sur la foulée offrent des avantages dans des cas spécifiques, pour les tâches de filtrage multidimensionnelles complexes, des fonctions spécialisées comme celles fournies par le module scipy.ndimage peuvent toujours offrir des performances supérieures.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal