Avez-vous besoin d'utiliser un filtre passe-bas avant de réduire la taille d'une image?

8

L'interpolation de pixels bicubiques est apparemment bonne pour augmenter ou réduire une image (en temps réel ou non).

Est-il recommandé d'utiliser un filtre passe-bas avant de réduire la taille, ou l'échantillonnage bicubique gère-t-il les problèmes d'aliasing?

Alan Wolfe
la source
1
Je suis un peu confus au sujet de votre prémisse ... en quoi un filtre passe-bas est-il qualitativement différent du sous-échantillonnage? Je veux dire, je comprends que les algorithmes sont différents et tous, mais ils rassemblent tous les deux des échantillons de pixels voisins et suppriment les hautes fréquences. La grande différence est la résolution de l'image résultante, sinon les deux opérations sont isomorphes. Il semble que l'application des deux soit redondante.
Jorge Rodriguez
Eh bien, voici ce qui m'embrouille. Je sais que vous ne pouvez pas simplement sous-échantillonner une image sans obtenir un alias. Faire une interpolation bicubique de pixels lors de l'agrandissement d'une image fonctionne très bien et semble agréable. Faire de même lorsque vous réduisez une image SEEMS pour qu'elle fonctionne correctement, mais je ne savais pas si le résultat aurait probablement beaucoup d'alias. Je me demandais si techniquement, vous auriez besoin de faire une sorte de filtre passe-bas sur l'image avant de faire l'échantillonnage bicubique, ou si l'échantillonnage bicubique était assez bon en pratique? Je pourrais le voir être un filtre passe-bas en quelque sorte à lui seul.
Alan Wolfe
1
Le document de Mitchell-Netravali que j'ai mentionné dans l'autre question répond précisément à cette idée - il a généralisé les cubiques et a ensuite trouvé les paramètres les moins alias. Cela ne signifie pas qu'ils n'aliasent pas du tout, mais peut-être que cela vous dirigerait vers le cube à utiliser pour minimiser l'aliasing.
Jorge Rodriguez

Réponses:

7

Si le passage de sous-échantillonnage est correctement conçu, il effectuera efficacement le filtrage passe-bas dans le cadre du sous-échantillonnage. Il n'y a pas besoin d'une opération de filtre passe-bas séparée.

Essentiellement, lorsque vous sous-échantillonnez, vous effectuez un filtre sur les pixels de l'image source (haute résolution), mais vous l'évaluez uniquement aux emplacements des pixels de destination (basse résolution). L'empreinte de ce filtre doit être approximativement l'espacement entre les pixels de destination, pour éviter de manquer des informations en sautant entre les pixels source. Mais cela signifie que l'encombrement du filtre sera de plusieurs pixels source, de sorte qu'il passera efficacement la source.

Par exemple, supposons que vous sous-échantillonniez une image exactement 10x sur chaque axe. Avec un filtre en forme de boîte (par exemple pour le bien), vous définiriez chaque pixel de destination à la moyenne d'une boîte de 10 x 10 pixels source. Cela éliminerait toutes les fonctionnalités inférieures à 10 pixels, il s'agit donc en fait d'un filtre passe-bas.

Vous parlez d'interpolation bicubique; nous devons faire une distinction entre filtrage et interpolation ici. L'interpolation est appropriée pour le suréchantillonnage, pas pour le sous-échantillonnage. L'interpolation bicubique fonctionne en ajustant un patch spline bicubique à un voisinage 4x4 de pixels, puis en évaluant le patch aux points interpolés. Bien que cela puisse fonctionner assez bien pour sous-échantillonner les images d'un petit facteur (jusqu'à 2x environ), il échouera si vous allez beaucoup plus loin. Par exemple, si le sous-échantillonnage est 10x comme dans l'exemple précédent, vous pouvez voir que bicubic manquera la majorité des pixels source, et le résultat peut être assez aliasé.

D'un autre côté, le filtrage bicubique n'est qu'un filtrage standard, utilisant un noyau qui est une fonction bicubique (par opposition à un noyau box, triangle, gaussien, Lanczos, etc.). Le noyau Mitchell-Netravali est l'exemple classique de ce type. S'il est utilisé pour le sous-échantillonnage, le noyau doit être dimensionné de manière appropriée pour l'espacement des pixels de destination, comme indiqué précédemment, et vous additionneriez tous les pixels de l'empreinte, pas seulement un 4x4 ou un autre voisinage de taille fixe.

Nathan Reed
la source