Réduction d'images - Algo - Programmation
Marsh Posté le 10-06-2004 à 01:34:53
tu prend un pixel sur nouvelle taille/ancienne taille (enfin, on fait pas comme ça exactement sinon ça tombe pas juste, mais c'est l'idée).
C'est le plus simple et le moins beau.
Marsh Posté le 10-06-2004 à 01:53:13
oui mais justement quand on a pasdes diviseurs "ronds" ca marche pas ... Je me souviens qu'en analyse harmonique on faisait destrucs de ce style avec du bilinéaire, mais y'a pas un algo plus simple (et qui m'obligerait pas à me replonger dans mes polys ;-) )
Marsh Posté le 10-06-2004 à 02:09:11
bon, j'y vais alors :
en 1D, (c'est linéairement séparable) :
Code :
|
pour des très très grandes images (anciennetaille*nouvelletaille > 2^32 ou 31), il faudra changer de stratégie car la multiplication va dépasser.
edit : la magie du truc vient de la division entière et de la multiplication faite *avant* la division.
Marsh Posté le 10-06-2004 à 03:25:57
sinon, tu peux aussi faire avec un accu, histoire d'avoir un rendu pas trop crade (le point sampling, c'est assez moyen, même si c'est rapide ... tout dépend de ce que tu veux)
en gros, pour chaque point de ton image de départ, tu fais la transformation du point dans le repère de ton image destination, tu regardes entre quels pixels il tombe (généralement : 4 pixels) et tu additionne les valeurs de couleur pondérées par la distance à chaque pixel ...
(évidemment, ca ne marche effectivement qu'avec une réduction d'image, mais ca a le mérite d'être facilement adaptable si tu fais une rotation de l'image autour de Z)
Marsh Posté le 10-06-2004 à 09:39:27
Sinon tu peux utiliser une lib qui fait déjà ça très bien.
Marsh Posté le 10-06-2004 à 16:15:54
Merci à tous.
Pour vous "remercier", je vous met à disposition la classe Delphi que j'ai codé à prtir de vos indications :
Code :
|
Marsh Posté le 10-06-2004 à 01:30:38
Quel est l'algo le plus simple à implémenter pour réduire des images d'une résolution à une autre quelconque mais inférieure ?