Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3221 connectés 

 


Dernière réponse
Sujet : Algorithme de redimensionnement d'image en C
StanCW Mer c pour cette reponse precise je vais essayer de retranscrire tout ça en C .....

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
StanCW Mer c pour cette reponse precise je vais essayer de retranscrire tout ça en C .....
LeGreg

stancw a écrit a écrit :

Je cherche un algo de redimensionnement d'image :  
image[576][520] en image2[144][52]  
sans trop de perte : moyennage, lissage ou autre  
Pourriez vous m'indiquez des methodes ou des sites qui en parle ???




 
Quand tu parles de limiter les pertes, tu veux sans doute dire limiter les artefacts visuels lies aux interferences. (parce que de la perte il y en a systematiquement quand tu reduis une image).
 
Pour limiter les interferences, tu utilises un filtre passe-bas.
Ton image a une frequence horizontale maximale de 576 (periode = 1)
Si tu veux l'echantillonner a une frequence de 144, tu dois donc limiter l'influence des frequences superieures a 144 (periode = 576/144 = 4). Tu peux donc par exemple faire la moyenne
sur 4 pixels horizontaux (box filter).
Tu inclus cette moyenne dans le calcul de ta nouvelle image.
Pour chaque nouveau pixel, tu calcules la moyenne sur les 4 pixels environnants (peu importe ou est le centre de ta "boite", l'important c'est de le faire uniformement sur l'image bien entendu, fais attention aux bordures de ton ecran).
Tu fais le meme calcul sur les pixels verticaux
peu importe l'ordre, tu peux meme faire le calcul simultanement en utilisant une "boite" en 2D.
 
Ce calcul n'est pas parfait, le box filter peut creer des artefacts d'interference sur certains types d'image.
(en effet une boite rectangulaire dans l'espace des frequences
n'est pas une boite mais fait des vagues de maniere periodique).
Pour eviter cela, il vaut peut etre mieux utiliser une moyenne ponderee sur les points voisins.
Les poids sont definis en cloche (la gaussienne).
ex: [1 2 1] c'est la definition d'une gaussienne de poids 4.
Le probleme de la gaussienne c'est que la coupe dans l'espace des frequences n'est pas franche. C'est a dire que tu as le choix
entre une image trop filtree (floue) ou pas assez filtree (risques d'interferences). En general le resultat est meilleur qu'avec la boite parce que tu n'as pas les artefacts liees aux vaguelettes de frequences. (une gaussienne en transformee de fourier reste une gaussienne).
 
Pour eliminer de maniere franche les frequences au dessus de 144, il y a une solution consistant a passer dans l'espace des frequences par une transformee de fourier rapide et a mettre a zero les coefficients situes au dessus de 144 en horizontal
et 52 en vertical. Puis faire la transformation inverse.
 
Attention aux effets bizarres sur les bords de ton image.
Elle est consideree comme periodique, c'est a dire que les bords droits et les bords gauches sont colles.
Tu peux ajouter des pixels inutiles sur les bords, avec des valeurs etudiees pour limiter les effets de la reduction de frequence.
 
A+
LEGREG

StanCW Je cherche un algo de redimensionnement d'image :  
image[576][520] en image2[144][52]  
sans trop de perte : moyennage, lissage ou autre  
 
Pourriez vous m'indiquez des methodes ou des sites qui en parle ???
 
MERCI

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)