Skip to content
Snippets Groups Projects
main.c 2.19 KiB
Newer Older
Og's avatar
Og committed
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>

#include "traitementPGM.h"
#include "gfx.h"

void write_error_graphic_file(const char *filename, const uint32_t size_n[],const double error_n[],const uint32_t length_data);
void Integration_numerique();
void Convolution_filtrage();

void write_error_graphic_file(const char *filename, const uint32_t size_n[],const double error_n[],const uint32_t length_data)
{
    FILE *f = fopen(filename, "w");

    for (uint32_t i = 0; i < length_data; i += 1)
    {
        fprintf(f, "%u,%lf\n", size_n[i], error_n[i]);
    }
    fclose(f);
}


void Integration_numerique()
{
    uint32_t size_n[] = {5, 10, 50, 100, 500, 1000};
    double error_n[6];
    for (uint32_t i = 0; i < sizeof(size_n) / sizeof(size_n[0]); i += 1)
    {
        printf("N = %u\n", size_n[i]);
        printf("Res integre : %.5lf\n", interg(1, 5, size_n[i], my_function_x));
        error_n[i] = E_n(size_n[i]);
        printf("E(N) = %lf\nI = %lf\n", error_n[i], VALUE_I);
    }

    write_error_graphic_file("graphique_data.txt", size_n, error_n, 6);
}

void Convolution_filtrage()
{
    /*
        MALLOC LEAKSANITZIZE
        use only : matrix_create & matrix_free
   */

    char *filname = "part2.pgm";
    pgm img;
Og's avatar
Og committed
    if (pgm_read_from_file(&img, filname) != ok)
Og's avatar
Og committed
    {
        printf("Impossible de lire l'image shouaitée\n");
Og's avatar
Og committed
        return uninitialized;
Og's avatar
Og committed
    }
    PrintImagePGM(img, filname);

    pgm_write_to_file(&img,"out.pgm");
    matrix_destroy(&img.pixels);
    //matrix_free(&img.pixels);

Og's avatar
Og committed
    matrix m1 = matrix_creat(10,10); 
    matrix m2 = matrix_creat(3,3); 
Og's avatar
Og committed

Og's avatar
Og committed
    int tab []= {1,1,1,1,1,1,1,1,1};
Og's avatar
Og committed

Og's avatar
Og committed
    matrix_from_array(&m2,3,3,tab);

    matrix_print(m2);

    matrix_setValue(&m1,8);

    matrix res = matrix_creat(10,10);

    matrix_print(m1);
Og's avatar
Og committed
    //res = matrix_padding(*m1,1);
Og's avatar
Og committed
    matrix_print(m2);
    convolve_matrix(&res,&m1,&m2,1/(double)9); // For create blur kernel
    matrix_print(res);

    matrix_destroy(&m1);
    matrix_destroy(&m2);
    matrix_destroy(&res);
Og's avatar
Og committed

}

int main()
{
    printf("TP math - Integrales\n");

    //Integration_numerique();
    
    Convolution_filtrage();

    return EXIT_SUCCESS;


}