Changeset 2681


Ignore:
Timestamp:
Aug 8, 2008, 8:11:24 PM (15 years ago)
Author:
Sam Hocevar
Message:
  • blur.c: implement box blur; currently runs in O(n) but we could make it O(1) trivially.
Location:
libpipi/trunk/pipi
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libpipi/trunk/pipi/filter/blur.c

    r2661 r2681  
    8686}
    8787
     88/* FIXME: box blur would be incredibly faster using an accumulator instead
     89 * of a convolution filter... */
     90pipi_image_t *pipi_box_blur(pipi_image_t *src, int size)
     91{
     92    return pipi_box_blur_ext(src, size, size);
     93}
     94
     95pipi_image_t *pipi_box_blur_ext(pipi_image_t *src, int m, int n)
     96{
     97    pipi_image_t *ret;
     98    double *kernel;
     99    int i;
     100
     101    kernel = malloc(m * n * sizeof(double));
     102    for(i = 0; i < m * n; i++)
     103        kernel[i] = 1. / (m * n);
     104
     105    ret = pipi_convolution(src, m, n, kernel);
     106
     107    free(kernel);
     108
     109    return ret;
     110}
     111
  • libpipi/trunk/pipi/pipi.h

    r2680 r2681  
    8282extern pipi_image_t *pipi_gaussian_blur_ext(pipi_image_t *,
    8383                                            float, float, float, float);
     84extern pipi_image_t *pipi_box_blur(pipi_image_t *, int);
     85extern pipi_image_t *pipi_box_blur_ext(pipi_image_t *, int, int);
    8486extern pipi_image_t *pipi_autocontrast(pipi_image_t *);
    8587
Note: See TracChangeset for help on using the changeset viewer.