Next: Tint, Up: Simple Image Processing [Contents][Index]
Convolution or filtering can be done easily using the following routine
int flimage_convolve(FL_IMAGE *im, int **kernel, int krow, int kcol);
This function takes a convolution kernel of krow
by kcol
and convolves it with the image. The result replaces the input image.
The kernel size should be odd. If successful, the function returns a
positive integer, otherwise a negative number. The kernel should be
allocated by fl_get_matrix()
. To use a kernel that’s a C
2-dimensional array (cast to a pointer to int), use the following
function
int flimage_convolvea(FL_IMAGE *im, int *kernel, int krow, int kcol);
The difference between these two functions is in their usage syntax:
int **kernel1 = fl_get_matrix(sizeof **kernel, n, m); int kernel2[n][m]; kernel1[x][y] = z; kernel2[x][y] = z; flimage_convolve(im, kernel1, n, m); flimage_convolvea(im, (int*) kernel2, n, m); /* note the cast */
Two special built-in kernels are designated with the following symbolic constants