code: func Sharpen(img image.Image, sigma float64) *image.NRGBA {
  	if sigma <= 0 {
  		return Clone(img)
  	}
  
  	src := newScanner(img)
  	dst := image.NewNRGBA(image.Rect(0, 0, src.w, src.h))
  	blurred := Blur(img, sigma)
  
  	parallel(0, src.h, func(ys <-chan int) {
  		scanLine := make([]uint8, src.w*4)
  		for y := range ys {
  			src.scan(0, y, src.w, y+1, scanLine)
  			j := y * dst.Stride
  			for i := 0; i < src.w*4; i++ {
  				val := int(scanLine[i])<<1 - int(blurred.Pix[j])
  				if val < 0 {
  					val = 0
  				} else if val > 0xff {
  					val = 0xff
  				}
  				dst.Pix[j] = uint8(val)
  				j++
  			}
  		}
  	})
  
  	return dst
  }
docs: // Sharpen produces a sharpened version of the image.
  // Sigma parameter must be positive and indicates how much the image will be sharpened.
  //
  // Example:
  //
  //	dstImage := imaging.Sharpen(srcImage, 3.5)
  //