Normalisation de valeurs

Normalisation de valeurs - Algo - Programmation

Marsh Posté le 01-08-2008 à 10:51:40    

salut tout le monde
 
je dispose d'un tableau de taille [x][y] et je voudrais normaliser les valeurs contenues dedans
ces valeurs peuvent être positives ou négatives
 
en gros la valeur devra être normalisée afin de rentrer dans l'intervalle [0,255] et sera un entier
 
vous auriez un super algo pour ce genre de normalisation ?
 
merci


---------------
Mon feedback
Reply

Marsh Posté le 01-08-2008 à 10:51:40   

Reply

Marsh Posté le 01-08-2008 à 11:01:32    

pardonne moi la question stupide, mais "normaliser des nombres" c'est :
 
pour un interval cible [0,255], si max = 300 et min = -100, les valeur (a = 10, b = 300) donnent :
 
a = 10, b = 255
 
ou bien
 
a = 70, b = 255
 
?


Message édité par MagicBuzz le 01-08-2008 à 11:02:03
Reply

Marsh Posté le 01-08-2008 à 11:04:45    

a priori il faut partir sur les valeurs absolues donc je dirai que :
 -> 0 reste 0
 -> max(|valeur_min|,|valeur_max|) devient 255
 
partant de là il doit falloir calculer un coefficient pour que les valeurs contenues dans le tableaux ne soient plus comprises entre min et max mais entre 0 et 255
 
ça te parait plus clair ?


Message édité par sarsipius le 01-08-2008 à 11:05:08

---------------
Mon feedback
Reply

Marsh Posté le 01-08-2008 à 11:08:28    

Simple régression linéaire je dirais :

 

intervalle de départ [I0,I1]
intervalle d'arrivée [J0,J1]

 

Pour V € [I0,I1]
Vnorm = J0 -L.I0 +L.V
avec L = (J0-J1)/(I0-I1)

 

CAS ou [Jo,J1] = [0-255] :
SI Jo=0, J1 = 255 on obtient : L = 255/(I1-I0)
Vnorm = 255V/(I1-I0) - 255I0/(I1-I0)

 

TEST :
Si I0 = -10, I1 = 10

 

Vnorm = 255V/20 + 255/2
pour V = I0, Vnorm = 0
pour V = I1 , Vnorm = 255
pour V = 0, Vnorm = 255/2 = 127


Message édité par Joel F le 01-08-2008 à 11:12:58
Reply

Marsh Posté le 01-08-2008 à 11:11:02    

merci Joel F
je digère, je code et je retourne le résultat :)


---------------
Mon feedback
Reply

Marsh Posté le 01-08-2008 à 11:27:20    

ça marche au poil
encore merci ^^


---------------
Mon feedback
Reply

Marsh Posté le 01-08-2008 à 11:33:19    

(à la base, je trouve ça vachement plus clair écrit sous forme de formule :D)
 
normalisée = (originale - MIN) * (max - min) / (MAX - MIN) + min
 
[MIN,MAX] : interval d'origine
[min,max] : interval cible
originale : valeur dans l'interval d'origine
normalisée : valeur normalisée dans l'interval cible

Reply

Marsh Posté le 01-08-2008 à 11:47:24    

et j'ai écrit quoi à ton avis ?

Reply

Marsh Posté le 01-08-2008 à 11:58:08    

Joel F a écrit :

et j'ai écrit quoi à ton avis ?


la même chose, je dis juste que je trouve ça plus lisible sous forme d'une formule mathématique :o

Reply

Marsh Posté le 01-08-2008 à 19:15:52    

en même temps tu as juste remplacé :
- I0 par MIN
- I1 par MAX
- J0 par min
- J1 par max
 
je vois pas trop l'intérêt du coup :\


---------------
Mon feedback
Reply

Marsh Posté le 01-08-2008 à 19:15:52   

Reply

Marsh Posté le 11-12-2008 à 00:09:14    

Bonjour,
 
je refais remonter ce topic : c'est possible de normaliser si on ne connait pas l'intervalle de départ, mais juste la valeur, qui peut être fort différente, et envoyer tout ça dans un intervalle d'arrivée -10/+10 par exemple? (afin d'y dessiner un histogramme normalisé).
 
Je suis preneur de toute info.... j'espère de normaliser des valeurs de change (eurusd, gbpusd, toussa....), et des valeurs calculées sur ces valeurs mais je galéreeeuuu!!


---------------
Plouf plouf!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed