View Raw SPL
/* sharpen and image via 2D convolution */
imsharpen(im, f)
{
        if (argc < 2)
        {
                if (argc < 1) error("imsharpen - input image required");

                /* default kernel */
                f = imsharpen_kernel(deltax(im), deltay(im));
        }

        /* 2D convolution - handles RGB components */
        im = imconv(im, f, "same");

        return(im);
}


/* default sharpen kernel */
imsharpen_kernel(dx, dy)
{
        local k;

        k = {{-1, -4, -1},
             {-4, 26, -4},
             {-1, -4, -1}};

        k.deltax = dx;
        k.deltay = dy;

        return(k / 6);
}