Use CV_HAAR_DO_CANNY_PRUNING for face detection
This commit is contained in:
parent
67da16d879
commit
92b88c0895
2 changed files with 1 additions and 2 deletions
|
|
@ -63,7 +63,7 @@ func LoadHaarClassifierCascade(haar string) *HaarCascade {
|
||||||
|
|
||||||
func (this *HaarCascade) DetectObjects(image *IplImage) []*Rect {
|
func (this *HaarCascade) DetectObjects(image *IplImage) []*Rect {
|
||||||
storage := C.cvCreateMemStorage(0)
|
storage := C.cvCreateMemStorage(0)
|
||||||
seq := C.cvHaarDetectObjects(unsafe.Pointer(image), this.cascade, storage, 1.1, 3, 0, C.cvSize(0, 0), C.cvSize(0, 0))
|
seq := C.cvHaarDetectObjects(unsafe.Pointer(image), this.cascade, storage, 1.1, 3, C.CV_HAAR_DO_CANNY_PRUNING, C.cvSize(0, 0), C.cvSize(0, 0))
|
||||||
var faces []*Rect
|
var faces []*Rect
|
||||||
for i := 0; i < (int)(seq.total); i++ {
|
for i := 0; i < (int)(seq.total); i++ {
|
||||||
rect := (*Rect)((*_Ctype_CvRect)(unsafe.Pointer(C.cvGetSeqElem(seq, C.int(i)))))
|
rect := (*Rect)((*_Ctype_CvRect)(unsafe.Pointer(C.cvGetSeqElem(seq, C.int(i)))))
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ func main() {
|
||||||
faces := cascade.DetectObjects(image)
|
faces := cascade.DetectObjects(image)
|
||||||
|
|
||||||
for _, value := range faces {
|
for _, value := range faces {
|
||||||
opencv.Circle(image, opencv.Point{value.X(), value.Y()}, 2, opencv.ScalarAll(255.0), 1, 1, 0)
|
|
||||||
opencv.Rectangle(image,
|
opencv.Rectangle(image,
|
||||||
opencv.Point{value.X() + value.Width(), value.Y()},
|
opencv.Point{value.X() + value.Width(), value.Y()},
|
||||||
opencv.Point{value.X(), value.Y() + value.Height()},
|
opencv.Point{value.X(), value.Y() + value.Height()},
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue