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 }