ip_lib.c
/* Effettua la fusione (combinazione convessa) di due immagini.
 *
 * I parametri della funzione non subiscono modiche, il risultato viene salvato e restituito in output
 * all'interno di una nuova ip_mat.
 *
 * Le variabili "a" e "b" devono avere le stesse dimensioni
 */
Effettua la fusione (combinazione convessa) di due immagini.
I parametri della funzione non subiscono modiche, il risultato viene salvato e restituito in output
all'interno di una nuova ip_mat.

Le variabili "a" e "b" devono avere le stesse dimensioni
Effettua la fusione ( combinazione convessa ) di due immagini . I parametri della funzione non subiscono modiche il risultato viene salvato e restituito in output all ' interno di una nuova ip_mat . Le variabili " a " e " b " devono avere le stesse dimensioni
ip_mat *ip_mat_blend(ip_mat *a, ip_mat *b, float alpha)
{
    not_null_ip_mat(a);
    not_null_ip_mat(b);
    equal_dimension(a, b);
    if (alpha >= 0.0 && alpha <= 1.0)
    {
        ip_mat *to_blend_a, *to_blend_b, *final;
        to_blend_a = ip_mat_mul_scalar(a, alpha);
        to_blend_b = ip_mat_mul_scalar(b, 1 - alpha);
        final = ip_mat_sum(to_blend_a, to_blend_b);
        ip_mat_free(to_blend_a);
        ip_mat_free(to_blend_b);
        return final;
    }
    else
    {
        printf("Invalid alpha value\n");
        exit(1);
    }
}
ip_mat * ip_mat_blend ( ip_mat * a , ip_mat * b , float alpha ) { not_null_ip_mat ( a ) ; not_null_ip_mat ( b ) ; equal_dimension ( a , b ) ; if ( alpha >= 0.0 && alpha <= 1.0 ) { ip_mat * to_blend_a , * to_blend_b , * final ; to_blend_a = ip_mat_mul_scalar ( a , alpha ) ; to_blend_b = ip_mat_mul_scalar ( b , 1 - alpha ) ; final = ip_mat_sum ( to_blend_a , to_blend_b ) ; ip_mat_free ( to_blend_a ) ; ip_mat_free ( to_blend_b ) ; return final ; } else { printf ( " \n " ) ; exit ( 1 ) ; } }
Effettua la fusione (combinazione convessa) di due immagini.
Effettua la fusione ( combinazione convessa ) di due immagini .