//*************************************************************************** #include <iostream.h> #include <fstream.h> #include <stdlib.h> /* ANSI C standard library routines */ #include <string.h> /* ANSI standard string routines */ #include <limits.h> #include <math.h> #include <stdio.h> #include "image.h" //*************************************************************************** double RMSerror(GrayImage *I1, GrayImage *I2) { double err = 0.0; if ((I1->width != I2->width) || (I1->height != I2->height)) { cerr << "RMSerror: Both images are not of the same size!!" << endl; exit(-1); } for (int i = 0; i < I1->height; i++) for (int j = 0; j < I1->width; j++) err += pow(I1->p[i][j]-I2->p[i][j], 2.0); err /= 1.0*I1->height*I1->width; return 100.0*sqrt(err)/I1->numLevels; } //***************************************************************************