func Sharpen(in image.Image, radius int, sigma float64) image.Image {
	normalize := 0.0
	f := func(u, v int) float64 {
		usq := float64(u * u)
		vsq := float64(v * v)
		val := -math.Exp(-(usq+vsq)/(2.0*sigma*sigma)) / (2.0 * math.Pi * sigma * sigma)
		normalize += val
		return val
	}
	k := blur.NewKernel(radius*2+1, radius*2+1, f)
	k[radius+1][radius+1] = -2.0 * normalize
	return blur.Convolve(in, k, blur.CLAMP)
}
Sharpen takes an image and sharpens it by, essentially, unblurring it. It is
currently extremely slow, so you are probably better off sticking to
UnsharpMask.
package sharpen
import (
	"hawx.me/code/img/blur"
	"hawx.me/code/img/utils"
	"image"
	"image/color"
	"math"
)