gobot.io/x/gobot/v2@v2.1.0/platforms/opencv/utils.go (about)

     1  package opencv
     2  
     3  import (
     4  	"image"
     5  	"image/color"
     6  
     7  	"gocv.io/x/gocv"
     8  )
     9  
    10  var classifier *gocv.CascadeClassifier
    11  
    12  // loadHaarClassifierCascade returns open cv HaarCascade loaded
    13  func loadCascadeClassifier(haar string) *gocv.CascadeClassifier {
    14  	if classifier != nil {
    15  		return classifier
    16  	}
    17  
    18  	c := gocv.NewCascadeClassifier()
    19  	c.Load(haar)
    20  	classifier = &c
    21  	return classifier
    22  }
    23  
    24  // DetectObjects loads Haar cascade to detect face objects in image
    25  func DetectObjects(haar string, img gocv.Mat) []image.Rectangle {
    26  	return loadCascadeClassifier(haar).DetectMultiScale(img)
    27  }
    28  
    29  // DrawRectangles uses Rect array values to return image with rectangles drawn.
    30  func DrawRectangles(img gocv.Mat, rects []image.Rectangle, r int, g int, b int, thickness int) {
    31  	for _, rect := range rects {
    32  		gocv.Rectangle(&img, rect, color.RGBA{uint8(r), uint8(g), uint8(b), 0}, thickness)
    33  	}
    34  	return
    35  }