10
votes

Quels algorithmes à utiliser pour la réduction de l'image?

Quels algorithmes à utiliser pour l'abattage de l'image?

Qu'est-ce qui est plus rapide?

Quel algorithme est effectué pour le redimensionnement de l'image (spécialement réduisant la réduction de la taille de 600x600 à super petit 6x6 par exemple) par ces géants en tant que joueur flash et argent, et HTML5?


2 commentaires

C'est beaucoup de questions pour une question.


Peu importe le choix que vous finissez par aller avec, il faut faire la réduction de l'image avec soin et compassion. N'oubliez pas: les images ont aussi des familles.


4 Réponses :


1
votes

Normalement, je collerais un filtre bilinéaire pour réduire la vitesse. Pour redimensionner des images sur Tiny tailles, cependant, vous risquez de perdre de la chance. La plupart des icônes sont éditées de pixels à la main pour les faire paraître de leur mieux.

ici est une bonne ressource qui explique très bien les concepts.


0 commentaires

1
votes

Il y a un excellent Article au projet de code indiquant le effets de divers filtres d'image.

Pour rétrécir une image, je suggère l'algorithme bicubique; Cela a un effet d'affûtage naturel, de sorte que les détails de l'image sont retenus à des tailles plus petites.


2 commentaires

Je reçois une erreur 404 sur cette page. Je suggérerais bicubic pour l'accroître, mais je m'enlève de ma bilinéear pour réduire. Dans l'ensemble, cela ne va pas faire une différence majeure.


@Ben, lien corrigé. Je ne suis pas d'accord; Bilinéar a un effet de lissage qui élimine les jaggies lors de l'élargissement, mais a tendance à laver les détails lors de la réduction des effectifs. Quoi qu'il en soit, jetez un coup d'œil à l'article.



11
votes

bilinéaire est la méthode la plus largement utilisée et peut être faite pour fonctionner aussi vite que l'algorithme d'échantillonnage du voisin voisin le plus proche, qui est le plus rapide mais le moins précis.

Le problème avec une implémentation naïve de l'échantillonnage bilinéaire est que Si vous l'utilisez pour réduire une image de plus de la moitié, vous pouvez rencontrer des artefacts d'aliasing similaires à ce que vous rencontreriez avec le voisin le plus proche. La solution à cela consiste à utiliser une approche basée sur la pyramide. Fondamentalement, si vous souhaitez réduire 600x600 à 30x30, vous réduisez d'abord à 300x300, puis 150x150, puis 75x75, puis 38x38, puis utilisez uniquement bilinéaire pour réduire à 30x30.

Lorsque vous réduisez une image de moitié, le L'algorithme d'échantillonnage bilinéaire devient beaucoup plus simple. Fondamentalement pour chaque ligne alternée et colonne de pixels: xxx


1 commentaires

Voulez-vous dire que bilinéar ne doit être utilisé que lors de la dernière étape?



3
votes

Il y a un cas spécial: la réduction des JPG de plus d'un facteur de 8. Un facteur direct de 8 restaux peut être effectué sur les données de JPG brutes, sans le décompresser. Les JPG sont stockés sous forme de blocs comprimés de 8x8 pixels, avec la valeur de pixels moyens en premier. En conséquence, il prend généralement plus de temps pour lire le fichier à partir du disque ou du réseau qu'il ne prend que pour le réduire.


0 commentaires