def visualize(fname,points,index=None,face_rect=None): pvimg = pvImage(fname) for p in points: pvimg.annotatePoint(p) if index: pvimg.annotateLabel((0,0),str(index)) if face_rect: pvimg.annotateRect(face_rect) name,ext = splitext(basename(fname)) pvimg.asAnnotated().save("%s_viz%s%s"%(name,'_%02d'%index if index else '',ext))
def main(aligner_fname, cascade_fname, image_fnames): aligner = Aligner(aligner_fname) cascade = load_cascade(cascade_fname) images = (pvImage(fname) for fname in image_fnames) return [ aligner.align_face(detect_faces(img, cascade)[0], img) for img in images ]
def visualize(fname, points, index=None, face_rect=None): pvimg = pvImage(fname) for p in points: pvimg.annotatePoint(p) if index: pvimg.annotateLabel((0, 0), str(index)) if face_rect: pvimg.annotateRect(face_rect) name, ext = splitext(basename(fname)) pvimg.asAnnotated().save("%s_viz%s%s" % (name, '_%02d' % index if index else '', ext))
def main(img_dir,pts_dir,haar_file,num_trains): t = Trainer() cascade = load_cascade(haar_file) sglob = lambda dir: sorted(glob(dir+"/*")) paths = izip(sglob(img_dir),sglob(pts_dir)) # split into training and testing for im,pf in islice(paths,num_trains): img = pvImage(im) pts = read_pointsfile(pf) faces = detect_faces(img,cascade) if faces: t.add_training_image(img,pts,faces[0]) else: print "No face found for %s"%im t.train() t.export_aligner('aligner.yaml')
def main(aligner_fname, cascade_fname, image_fnames): aligner = Aligner(aligner_fname) cascade = load_cascade(cascade_fname) images = (pvImage(fname) for fname in image_fnames) return [aligner.align_face(detect_faces(img, cascade)[0], img) for img in images]