Newer
Older
#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);
void Convolution_filtrage(void);
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_test()
{
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);
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);
}
void Convolution_filtrage()
{
/*
MALLOC LEAKSANITZIZE
use only : matrix_create & matrix_free
*/
char filname[] = "part3_1.pgm";
char output_image[] = "out.pgm";
char output_convolve[] = "convolve.pgm";
return;
printf("%d %d\n",img.pixels.m,img.pixels.n);
// normalise_matrix(&img.pixels,img.max,7);
// PrintImagePGM(img, filname);
pgm_write_to_file(&img,output_image);
// exit(0);
// int tab []= {1,1,1,1,1,1,1,1,1};
// int tab[] = {0,-1,0,-1,5,-1,0,-1,0};
matrix_from_array(&kernel,3,3,tab);
matrix_print(kernel);
pgm res;
res.max = img.max;
res.pixels = matrix_creat(img.pixels.m,img.pixels.n);
// normalise_matrix(&img.pixels,img.max,7);
convolve_matrix(&res.pixels,&img.pixels,&kernel,1);
// normalise_matrix(&res.pixels,res.max,7);
pgm_write_to_file(&res,output_convolve);
matrix_destroy(&res.pixels);
matrix_destroy(&kernel);
}
int main()
{
printf("TP math - Integrales\n");
//Integration_numerique();
Convolution_filtrage();