Use CV_HAAR_DO_CANNY_PRUNING for face detection

This commit is contained in:
Adrian Zankich 2014-03-04 13:30:41 -08:00
parent 67da16d879
commit 92b88c0895
2 changed files with 1 additions and 2 deletions

View file

@ -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)))))

View file

@ -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()},