示例#1
0
int main (int argc, char *argv[])
{
    precint *precincts;         /* Vector de precintos */
    long np;                    /* Numero de elementos del vector */
    long i, contup, contdown;
    double sum, avg;

    /* Comprobamos el número de parametros */
    if (argc!=2)
    {
        printf("\nUso: %s <filename_precincts_list_in>.",argv[0]);
        printf("\nfilename_precincts_list = Precincts list IN.\n\n");
        exit(0);
    }

    /* Calculamos el numero de precintos que contiene la imagen */
    np = (MAXROWS/32)*(MAXCOLS/32);

    /* Reservamos memoria dinámica para el vector de precintos */
    precincts = (precint *) malloc (np*sizeof(precint));

    /* Leemos la lista de precintos */
    readPrecinctsToFile(precincts,&np,argv[1]);

    sum = 0;
    for(i=0;i<np;i++)
    {
        sum = sum + precincts[i].countDifferences;
        //printf("\nMSE: %lf",precincts[i].countDifferences);
    }
    avg = sum / np;

    contup = 0;
    contdown = 0;
    for(i=0;i<np;i++)
    {
        if (precincts[i].countDifferences > (precincts[0].countDifferences/2))
        {
            contup = contup + 1;
        }
        else
        {
            contdown = contdown + 1;
        }
    }

    printf("\nSum: %lf",sum);
    printf("\nCont: %ld",np);
    printf("\nAvg: %lf",avg);
    printf("\nContUp: %ld",contup);
    printf("\nContDown: %ld\n",contdown);

    return 0;
}
示例#2
0
int main (int argc, char *argv[])
{
    precint *precincts;          /* Vector de precintos */
    precint *precinctsFiltrados; /* Vector de precintos filtrados */
    long np;                     /* Numero de elementos del vector */
    long npFiltrados;            /* Numero de elementos del vector (filtrados) */
    long WprecinctSize, HprecinctSize; /* Tamaño del precinto */
    long i;
    double threshold;
    double max;

    /* Comprobamos el número de parametros */
    if (argc!=6)
    {
        printf("\nUso: %s <filename_precincts_list_in DAT> <W_precinct_size> <H_precinct_size> <threshold> <filename_precincts_filtrados TXT>.\n\n",argv[0]);
        exit(1);
    }

    /* Validamos el valor del tamaño de precinto */
    WprecinctSize = atoi(argv[2]);
    HprecinctSize = atoi(argv[3]);

    threshold = atof(argv[4]);

    /* Calculamos el numero de precintos que contiene la imagen */
    np = (MAXROWS/HprecinctSize)*(MAXCOLS/WprecinctSize);

    /* Reservamos memoria dinámica para el vector de precintos */
    precincts = (precint *) malloc (np*sizeof(precint));
    precinctsFiltrados = (precint *) malloc (np*sizeof(precint));

    /* Leemos la lista de precintos */
    readPrecinctsToFile(precincts,&np,argv[1]);

    /* Recorremos el vector de precintos */
    max = -1;
    npFiltrados = 0;
    for(i=0;i<np;i++)
    {
        if (precincts[i].countDifferences >= threshold)
        {
            precinctsFiltrados[npFiltrados] = precincts[i];
            npFiltrados++;
        }
        /* Calculamos el MSE máximo */
        if (precincts[i].countDifferences > max)
        {
            max = precincts[i].countDifferences;
        }
    }
    printf("\nNum. Precincts: %ld\n",npFiltrados);
    printf("MSE Máximo: %lf\n",max);

    if (npFiltrados==0)
    {
        printf("\nNo se puede crear el archivo de salida porque no hay precintos filtrados.\n");
        printf("MSE Máximo: %lf \t Threshold: %lf.\n\n",max, threshold);
        exit(1);
    }

    /* Guardamos la nueva lista de precintos en disco */
    writePrecinctsToFileTXT(precinctsFiltrados,0,npFiltrados,argv[5]);

    return 0;
}
示例#3
0
int main (int argc, char *argv[])
{
    precint *precincts;                 /* Vector de precintos */
    precint *precinctsFiltrados;        /* Vector de precintos filtrados */
    long np;                            /* Numero de elementos del vector */
    long npFiltrados;                   /* Numero de elementos del vector (filtrados) */
    long WprecinctSize, HprecinctSize;  /* Tamaño del precinto */
    long i;
    double mediana, suma, media, min, max;

    /* Comprobamos el número de parametros */
    if (argc!=4)
    {
        printf("\nUso: %s <filename_precincts_list_in DAT> <W_precinct_size> <H_precinct_size>.\n\n",argv[0]);
        exit(1);
    }

    /* Validamos el valor del tamaño de precinto */
    WprecinctSize = atoi(argv[2]);
    HprecinctSize = atoi(argv[3]);

    /* Calculamos el numero de precintos que contiene la imagen */
    np = (MAXROWS/HprecinctSize)*(MAXCOLS/WprecinctSize);

    /* Reservamos memoria dinámica para el vector de precintos */
    precincts = (precint *) malloc (np*sizeof(precint));
    precinctsFiltrados = (precint *) malloc (np*sizeof(precint));

    /* Leemos la lista de precintos */
    readPrecinctsToFile(precincts,&np,argv[1]);

    /* Recorremos el vector de precintos */
    npFiltrados = 0;
    for(i=0;i<np;i++)
    {
        if (precincts[i].countDifferences > 0)
        {
            precinctsFiltrados[npFiltrados] = precincts[i];
            npFiltrados++;
        }
    }

    if (npFiltrados==0)
    {
        mediana = -1;
        media = -1;
        min = -1;
        max = -1;
    }
    else
    {
        /* Calculamos la media, min y max */
        suma = precinctsFiltrados[0].countDifferences;
        min = precinctsFiltrados[0].countDifferences;
        max = precinctsFiltrados[0].countDifferences;
        for(i=1;i<npFiltrados;i++)
        {
            if (precinctsFiltrados[i].countDifferences > max)
            {
                max = precinctsFiltrados[i].countDifferences;
            }

            if (precinctsFiltrados[i].countDifferences < min)
            {
                min = precinctsFiltrados[i].countDifferences;
            }

            suma = suma + precinctsFiltrados[i].countDifferences;
        }
        media = suma/npFiltrados;

        /* Calculamos la mediana */
        if (npFiltrados%2!=0)
        {
            mediana = precinctsFiltrados[npFiltrados/2].countDifferences;
        }
        else
        {
            mediana = (precinctsFiltrados[npFiltrados/2].countDifferences + precinctsFiltrados[(npFiltrados/2)-1].countDifferences)/2;
        }
    }

    printf("\nNum. Precincts: %ld\n",npFiltrados);
    printf("[Threshold] Mediana: %lf\n",mediana);
    printf("[Threshold] Media: %lf\n",media);
    printf("[Threshold] Min: %lf\n",min);
    printf("[Threshold] Max: %lf\n",max);

    return 0;
}
示例#4
0
int main (int argc, char *argv[])
{
    precint *precinctsUp;
    precint *precinctsDown;
    precint *precinctsOut;
    long npUp;
    long npDown;
    long i, j;
    int readOK, writeOK;

    if (argc!=4)
    {
        printf("\nUso: %s <in_filename_precincts_list_A_dat> <in_filename_precincts_list_B_dat> <out_filename_precincts_dat>.\n\n",argv[0]);
        exit(0);
    }

    /* Reservamos memoria dinámica para los vectores de precintos */
    precinctsUp = (precint *) malloc (MAX*sizeof(precint));
    precinctsDown = (precint *) malloc (MAX*sizeof(precint));
    precinctsOut = (precint *) malloc (2*MAX*sizeof(precint));

    readOK = readPrecinctsToFile(precinctsUp, &npUp, argv[1]);
    if (!readOK)
    {
        printf("\nError al abrir el archivo: %s.\n",argv[1]);
        exit(1);
    }

    readOK = readPrecinctsToFile(precinctsDown, &npDown, argv[2]);
    if (!readOK)
    {
        printf("\nError al abrir el archivo: %s.\n",argv[2]);
        exit(1);
    }


    for(i=0;i<npUp;i++)
    {
        precinctsOut[i] = precinctsUp[i];
    }

    for(j=0;j<npDown;j++)
    {
        precinctsOut[i] = precinctsDown[j];
        i++;
    }

    OrdenarSeleccionDirecta(precinctsOut, i);

    writeOK = writePrecinctsToFile(precinctsOut, i, argv[3]);
    if (!writeOK)
    {
        printf("\nError al abrir el archivo: %s.\n",argv[3]);
        exit(1);
    }
    else
    {
        printf("\nEl archivo: %s se creó con éxito.\n",argv[3]);
    }

    return 0;
}