Des algorithmes pour sous-échantillonner une image?


10

L'échantillonnage bicubique est assez bon pour échantillonner une image et l'agrandir, mais est-ce aussi un bon choix pour l'échantillonnage à la baisse? Y a-t-il de meilleurs choix?


1
Ces deux anciens articles de Le produit intérieur parle de filtres pour la génération de mipmap, ce qui pourrait être pertinent pour vous: Lien1 , lien2 .
glampert

Réponses:


12

Lorsque Sean et moi avons écrit stb_image_resize, nous avons choisi Mitchell pour réduire les effectifs. Mitchell est similaire à Cubic, vous pouvez en savoir plus sur la classe cubique des filtres d'échantillonnage dans Mitchell Netravali 1988 . Ils sont tous assez similaires et vous obtiendront des résultats très similaires.

Je ne trouve aucun enregistrement écrit entre Sean et moi expliquant pourquoi nous avons décidé d'aller avec Mitchell, mais si ma mémoire est bonne, nous avons juste rééchantillonné un tas d'images et utilisé l'algorithme que nous pensions être le meilleur. Je ne dirais pas qu'il existe un filtre faisant autorité ou le meilleur, vous devriez utiliser celui qui correspond le mieux à vos données.

Edit: Comme le dit joojaa, un filtre sinc fenêtré est également bon, sinon tout aussi bon marché. Vous pouvez trouver quelques implémentations ici .


3
Il existe un meilleur filtre faisant autorité, c'est un filtre sinc infiniment large. Ce n'est tout simplement pas possible de l'utiliser. jusqu'à ce que lanczos windowed sinc soit une bonne alternative à michell
joojaa

Pour référence, il y a aussi les outils d'image Nvidia .
glampert

Si vous utilisez un filtre cubique ou lanczos, ces types fonctionnent-ils aussi bien pour la mise à l'échelle que pour la réduction?
Alan Wolfe

Je n'ai pas essayé de lanczos donc je ne peux pas en parler. Nous avons choisi catmull-rom pour la mise à l'échelle, qui est un cube, et cela a bien fonctionné.
Jorge Rodriguez
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.