10 #ifndef CLASS_METRICPSNR
11 #define CLASS_METRICPSNR
28 double calculate(
Images org,
Images rcv,
bool show_data){
35 double mse, psnr, del;
37 int h = org.getHeight()/org.getHeightBlock();
38 int w = org.getWidth()/org.getWidthBlock();
41 for (
int i = 0; i < h; i=i+1)
43 for (
int j = 0; j < w; j=j+1)
48 mse = mse + (double)pow(del, 2);
51 mse = mse/(double)(h*w);
52 psnr = (double)(10.0 * log10(pow((
double)maxIntensity(org), 2) / mse));
55 cout <<
"PSNR: " << psnr <<
"\n";
59 int maxIntensity(
Images img){
66 if(matrix[0][0].isValid())
70 int h = img.getHeight()/img.getHeightBlock();
71 int w = img.getWidth()/img.getWidthBlock();
72 for (
int i = 0; i < h; i=i+1)
74 for (
int j = 0; j < w; j=j+1)
76 if(matrix[i][j].getIntensity() > max)
Clase que representa un Bloque de Píxeles.
Clase que representa una Imagen.
Clase Abstracta que representa la estructura que debe tener la métrica que se desee implementar...
Clase que representa la Métrica PSNR.