#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; if (pgm_read_from_file(&img, filname) != ok) { printf("Impossible de lire l'image shouaitée\n"); return uninitialized; } PrintImagePGM(img, filname); pgm_write_to_file(&img,"out.pgm"); matrix_destroy(&img.pixels); //matrix_free(&img.pixels); matrix m1 = matrix_creat(10,10); matrix m2 = matrix_creat(3,3); int tab []= {1,1,1,1,1,1,1,1,1}; matrix_from_array(&m2,3,3,tab); matrix_print(m2); matrix_setValue(&m1,8); matrix res = matrix_creat(10,10); matrix_print(m1); //res = matrix_padding(*m1,1); 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); } int main() { printf("TP math - Integrales\n"); //Integration_numerique(); Convolution_filtrage(); return EXIT_SUCCESS; }