Ejemplo n.º 1
0
static double imgerr(char *m, float *x, float *y, int n)
{
	double r;
	if (false);
	else if (0 == strcmp(m, "MSE"))   r = mean_square_error(x, y, n);
	else if (0 == strcmp(m, "RMSE"))  r = root_mean_square_error(x, y, n);
	else if (0 == strcmp(m, "MAE"))   r = mean_absolute_error(x, y, n);
	else if (0 == strcmp(m, "UIQI"))  r = uiqi(x, y, n);
	else if (0 == strcmp(m, "SSIM"))  r = ssim(x, y, n);
	else if (0 == strcmp(m, "PSNR"))  r = psnr(x, y, n);
	else if (0 == strcmp(m, "NCC"))   r = ncc(x, y, n);
	else if (string_is_lp(m, &r))     r = ell_pee_distance(x, y, n, r);
	else fail("unrecognized metric \"%s\"", m);
	return r;
}
Ejemplo n.º 2
0
metrics_accumulator::operator metrics() const
{
    return {mean_absolute_error(), median_absolute_error(),
            mean_squared_error(), r2_score()};
}