void filter_contrast(struct matrix *M) { double *C = calloc(9, sizeof(double)); C[1] = C[3] = C[5] = C[7] = -1, C[4] = 5; convolution_apply(M, C); free(C); }
void filter_repoussage(struct matrix *M) { double *C = malloc(sizeof(double) * 9); C[0] = -2, C[1] = C[3] = -1, C[4] = C[5] = C[7] = 1, C[6] = C[2] = 0, C[8] = 2; convolution_apply(M, C); free(C); }
void filter_flou(struct matrix *M) { double *C = malloc(sizeof(double) * 9); for(int i = 0; i < 9; i++) C[i] = 1; convolution_apply(M, C); free(C); }
void filter_noise(struct matrix *M) { double *C = malloc(sizeof(double) * 9); //the convolution matrix (3x3). for(int i = 0; i < 9; i++) C[i] = 1; C[4] = 5; convolution_apply(M, C); free(C); }
SDL_Surface *filter_blur(SDL_Surface *s) { int convolution[9] = {1, 1, 1, 1, 1, 1, 1, 1, 1}; return convolution_apply(s, &convolution[0], 3, 9); }
SDL_Surface *filter_edge(SDL_Surface *s) { int convolution[9] = {0, 0, 0, -1, 1, 0, 0, 0, 0}; return convolution_apply(s, &convolution[0], 3, 3); }
SDL_Surface *filter_sharpen(SDL_Surface *s) { int convolution[9] = {0, -2, 0, -2, 11, -2, 0, -2, 0}; return convolution_apply(s, &convolution[0], 3, 3); }