func DrawFeatures(original image.Image, result *types.DetectionResult) {
	dst := original.(draw.Image)
	for _, minutiae := range result.Minutia {
		switch minutiae.Type {
		case types.Bifurcation:
			drawSquare(dst, minutiae.X, minutiae.Y, red)
		case types.Termination:
			drawSquare(dst, minutiae.X, minutiae.Y, blue)
		case types.Pore:
			drawSquare(dst, minutiae.X, minutiae.Y, green)
		}
	}
	drawFrame(dst, result.Frame.Horizontal, cyan)
	drawFrame(dst, result.Frame.Vertical, cyan)
	drawDiagonalFrame(dst, result.Frame.Diagonal, cyan)
	drawHalfPoint(dst, result.Frame.Diagonal, cyan)
	drawHalfPoint(dst, result.Frame.Horizontal, cyan)
	drawHalfPoint(dst, result.Frame.Vertical, cyan)
}
DrawFeatures draws the original image with all the features that are
detected drawn on top of it. Useful for understanding what data
we are gathering, and visualise it. Helpful for detecting issues with
the algorithms or potential next steps.
package debug
import (
	"image"
	"image/color"
	"image/draw"
	"github.com/alevinval/fingerprints/internal/types"
)
var (
	red   = color.RGBA{255, 0, 0, 255}
	green = color.RGBA{25, 215, 0, 255}
	cyan  = color.RGBA{20, 200, 200, 255}
	blue  = color.RGBA{0, 0, 255, 255}
)