示例#1
0
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)
示例#2
0
			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()