ip_lib.c
/* Effettua una riscalatura dei dati tale che i valori siano in [0,new_max].
 * Utilizzate il metodo compute_stat per ricavarvi il min, max per ogni canale.
 *
 * I valori sono scalati tramite la formula (valore-min)/(max - min)
 *
 * Si considera ogni indice della terza dimensione indipendente, quindi l'operazione
 * di scalatura va ripetuta per ogni "fetta" della matrice 3D.
 * Successivamente moltiplichiamo per new_max gli elementi della matrice in modo da ottenere un range
 * di valori in [0,new_max].
 *
 * Il risultato dell'operazione si salva in t
 * */
Effettua una riscalatura dei dati tale che i valori siano in [0,new_max].
Utilizzate il metodo compute_stat per ricavarvi il min, max per ogni canale.

I valori sono scalati tramite la formula (valore-min)/(max - min)

Si considera ogni indice della terza dimensione indipendente, quindi l'operazione
di scalatura va ripetuta per ogni "fetta" della matrice 3D.
Successivamente moltiplichiamo per new_max gli elementi della matrice in modo da ottenere un range
di valori in [0,new_max].

Il risultato dell'operazione si salva in t
Effettua una riscalatura dei dati tale che i valori siano in [ 0 new_max ] . Utilizzate il metodo compute_stat per ricavarvi il min max per ogni canale . I valori sono scalati tramite la formula ( valore - min ) / ( max - min ) Si considera ogni indice della terza dimensione indipendente quindi l ' operazione di scalatura va ripetuta per ogni " fetta " della matrice 3D . Successivamente moltiplichiamo per new_max gli elementi della matrice in modo da ottenere un range di valori in [ 0 new_max ] . Il risultato dell ' operazione si salva in t
void rescale(ip_mat *t, float new_max)
{
    unsigned int ch, row, col;
    not_null_ip_mat(t);
    for (ch = 0; ch < t->k; ch++)
    {
        for (row = 0; row < t->h; row++)
        {
            for (col = 0; col < t->w; col++)
            {
                float val, max, min;
                max = t->stat[ch].max;
                min = t->stat[ch].min;
                val = (get_val(t, row, col, ch) - min) / (max - min) * new_max;
                set_val(t, row, col, ch, val);
            }
        }
    }
}
void rescale ( ip_mat * t , float new_max ) { unsigned int ch , row , col ; not_null_ip_mat ( t ) ; for ( ch = 0 ; ch < t -> k ; ch ++ ) { for ( row = 0 ; row < t -> h ; row ++ ) { for ( col = 0 ; col < t -> w ; col ++ ) { float val , max , min ; max = t -> stat [ ch ] . max ; min = t -> stat [ ch ] . min ; val = ( get_val ( t , row , col , ch ) - min ) / ( max - min ) * new_max ; set_val ( t , row , col , ch , val ) ; } } } }
Effettua una riscalatura dei dati tale che i valori siano in [0,new_max].
Effettua una riscalatura dei dati tale che i valori siano in [ 0 new_max ] .