/*Realiza a media usando uma matriz NxN */ #define MAX #include "lib.h" #include <math.h> void diff(IMAGE x,IMAGE y) { int i,j,d,k,m ; long int erroquadrado; float sinalruido; float sinal,ruido; int b; erroquadrado=0; sinal =0; ruido=0; sinalruido = 0.0f; for (i= 0; i< x->info->nr-1; i++) for (j= 0; j < x->info->nc-1; j++){ b=(x->data[i][j] - y->data[i][j]); erroquadrado+= b*b; sinal += x->data[i][j]*x->data[i][j]; } ruido = erroquadrado; erroquadrado=sqrt(erroquadrado/(x->info->nc*x->info->nr)); printf("Erro quadrado medio: %d \n",erroquadrado); printf("Sinal/Ruido: %f \n",sinal/ruido); return; } main (int argc, char *argv[]) { IMAGE x=0; IMAGE y=0; IMAGE medImage=0; int n; if (argc < 3) { printf ("Modo de usar: \n media <image> <n> \n"); exit (1); } x = Input_PBM (argv[1]); y = Input_PBM (argv[2]); if (x == 0) { printf ("Arquivo Invalido: ('%s')\n", argv[1]); exit (2); } if (y == 0) { printf ("Arquivo Invalido: ('%s')\n", argv[2]); exit (2); } printf("Calculando a diferenca \n"); diff(x,y); /* Output_PBM (medImage, "diff.pgm"); printf ("Imagem de saida gravada no arquivo: 'diff.pgm'\n"); */ }