def main(img_path): # # Load image # img = img = cv2.imread(img_path,0) gray = img = cv2.imread(img_path,0) img = np.asanyarray(img) gray = np.asarray(gray) # # Load face model # conns = facetracker.LoadCon('../pyFaceTracker-0.1.1/external/FaceTracker/model/face.con') trigs = facetracker.LoadTri('../pyFaceTracker-0.1.1/external/FaceTracker/model/face.tri') tracker = facetracker.FaceTracker('../pyFaceTracker-0.1.1/external/FaceTracker/model/face.tracker') # # Search for faces in the image # tracker.setWindowSizes((11, 9, 7)) print type(gray) print type(tracker) if tracker.update(gray): #img = tracker.draw(img, conns, trigs) obj3D = tracker.get3DShape() print obj3D,len(obj3D),type(obj3D),obj3D.dtype #fig3d = plt.figure() #ax = fig3d.add_subplot(111, projection='3d') print len(obj3D[:66]) #ax.scatter(obj3D[:66], obj3D[66:132], obj3D[132:]) filename ,extension = os.path.splitext(os.path.basename(img_path)) dataHandle.insert(filename,obj3D[:66,0],obj3D[66:132,0],obj3D[132:,0]) #for i in range(66): # ax.text(obj3D[i], obj3D[i+66], obj3D[i+132], str(i)) #ax.view_init(-90, -90) else: print 'Failed tracking face in image:' + os.path.basename(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #グレースケール画像のヒストグラムの均一化 gray = cv2.equalizeHist(gray) if tracker.update(gray): obj3D = tracker.get3DShape() drawMask(ax,obj3D) shape,visi = tracker.get2DShape() draw(img,shape,visi) else: tracker.setWindowSizes((11, 9, 7)) cv2.imshow('facedetect', img) plt.show() key = cv2.waitKey(5) if key > 0: if key == ord('q'): break elif key == ord('s'): import dataHandle name = raw_input('Input name:') x = str(obj3D[:len(obj3D)/3]) y = str(obj3D[len(obj3D)/3:len(obj3D)*2/3]) z = str(obj3D[len(obj3D)*2/3:]) dataHandle.insert(name,x,y,z) for row in dataHandle.getData(name): print row[0],row[1],row[2] except: pass cv2.destroyAllWindows()