mirror of
https://github.com/jlengrand/Ivolution.git
synced 2026-03-10 08:21:18 +00:00
In the middle of adding command line support
This commit is contained in:
@@ -16,7 +16,7 @@ class FaceParams(object):
|
||||
'''
|
||||
# Creates dictionary for all types of training files
|
||||
# some of them shall never be used. Perhaps would it be good to lower the dict size, or hide some of them
|
||||
training_types = {#eyes
|
||||
self.training_types = {#eyes
|
||||
'eyes':"haarcascade_eye",
|
||||
'glasses':"haarcascade_eye_tree_eyeglasses",
|
||||
'left eye splits':"haarcascade_lefteye_2splits",
|
||||
@@ -45,7 +45,7 @@ class FaceParams(object):
|
||||
'nose':"haarcascade_mcs_nose"
|
||||
}
|
||||
# postpend .xml
|
||||
cascade_name = training_types[training_type] + ".xml"
|
||||
cascade_name = self.training_types[training_type] + ".xml"
|
||||
# Setting up some default parameters for Face Detection
|
||||
self.face_cascade = cv.Load(os.path.join(xml_folder, cascade_name))
|
||||
|
||||
@@ -68,4 +68,14 @@ class FaceParams(object):
|
||||
print "Haar scaling: %f" % (self.haar_scale)
|
||||
print "Number of Haar flags: %d" % (self.haar_flags)
|
||||
print "Minimum number of neighbors: %d" % (self.min_neighbors)
|
||||
print "---------"
|
||||
print "---------"
|
||||
|
||||
def get_types(self):
|
||||
"""
|
||||
Lists all possible types for training files
|
||||
Returns list of string
|
||||
"""
|
||||
types = []
|
||||
for key, val in self.training_types.iteritems():
|
||||
types.append(key)
|
||||
return types
|
||||
@@ -3,8 +3,11 @@ Created on 27 mars 2012
|
||||
|
||||
@author: jll
|
||||
'''
|
||||
import cv
|
||||
import os
|
||||
import sys
|
||||
|
||||
import cv
|
||||
|
||||
import Guy
|
||||
from FaceParams import FaceParams
|
||||
|
||||
65
facemovie/fm_user_end.py
Normal file
65
facemovie/fm_user_end.py
Normal file
@@ -0,0 +1,65 @@
|
||||
'''
|
||||
Created on 29 mars 2012
|
||||
|
||||
@author: jll
|
||||
'''
|
||||
|
||||
# This file should never be imported anywhere
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
import Facemovie
|
||||
|
||||
class Facemoviefier():
|
||||
"""
|
||||
Class defining the interactions with the end user.
|
||||
Should be used as point of entry for all end users.
|
||||
"""
|
||||
|
||||
def __init__(self):
|
||||
|
||||
#inits Command Line Parser
|
||||
self.parser = initCLParser()
|
||||
|
||||
|
||||
# Finally def ines the FaceMovie itself
|
||||
self.Facemovie = Facemovie.FaceMovie(in_fo, out_fo, par_fo)
|
||||
|
||||
def initCLParser(self):
|
||||
"""
|
||||
Inits and Configures the command line parser designed to help the user configure the application
|
||||
"""
|
||||
parser = argparse.ArgumentParser(description="Creates a movie from a bunch of photos containing a Face.")
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print sys.argv
|
||||
#We need input_folder, output_folder, param_folder for now
|
||||
if len(sys.argv) == 4:
|
||||
print "I trust your inputs!"
|
||||
[in_fo, out_fo, par_fo] = sys.argv[1, :]
|
||||
else :
|
||||
print "Chosen automatic way!"
|
||||
root_fo = "C:\Users\jll\perso\workspace\FaceMovie"
|
||||
in_fo = os.path.join(root_fo, "data/input\Axel")
|
||||
out_fo = os.path.join(root_fo, "data/output")
|
||||
par_fo = os.path.join(root_fo, "facemovie/haarcascades")
|
||||
|
||||
my_movie = Facemovie.FaceMovie(in_fo, out_fo, par_fo)
|
||||
my_movie.list_guys() # find images in input folder
|
||||
my_movie.search_faces() # search for images with faces
|
||||
# I want to change images so that all faces have the same size
|
||||
my_movie.normalize_faces() # sets all faces to the same size
|
||||
# I want to know the size of the output frame, knowing initial conditions
|
||||
my_movie.find_out_dims() # finds output minimal size to get all eyes in the same place
|
||||
|
||||
#choose your final step
|
||||
#my_movie.show_faces(1000)
|
||||
#my_movie.save_faces("output")
|
||||
my_movie.save_movie("output")
|
||||
|
||||
print "Facemovie finished !"
|
||||
@@ -1,41 +0,0 @@
|
||||
'''
|
||||
Created on 29 mars 2012
|
||||
|
||||
@author: jll
|
||||
'''
|
||||
import os
|
||||
import facemovie
|
||||
|
||||
import sys
|
||||
if __name__ == '__main__':
|
||||
print sys.argv
|
||||
#We need input_folder, output_folder, param_folder for now
|
||||
if len(sys.argv) == 1:
|
||||
print "Setting up the parameters!"
|
||||
in_fo = raw_input("indicate input folder:")
|
||||
out_fo = raw_input("indicate output folder:")
|
||||
par_fo = raw_input("indicate parameters folder:")
|
||||
elif len(sys.argv) == 4:
|
||||
print "I trust your inputs!"
|
||||
[in_fo, out_fo, par_fo] = sys.argv[1, :]
|
||||
else :
|
||||
print "Chosen automatic way!"
|
||||
root_fo = "C:\Users\jll\perso\workspace\FaceMovie"
|
||||
in_fo = os.path.join(root_fo, "input\Axel")
|
||||
out_fo = os.path.join(root_fo, "output")
|
||||
par_fo = os.path.join(root_fo, "haarcascades")
|
||||
|
||||
my_movie = facemovie.FaceMovie(in_fo, out_fo, par_fo)
|
||||
my_movie.list_guys() # find images in input folder
|
||||
my_movie.search_faces() # search for images with faces
|
||||
# I want to change images so that all faces have the same size
|
||||
my_movie.normalize_faces() # sets all faces to the same size
|
||||
# I want to know the size of the output frame, knowing initial conditions
|
||||
my_movie.find_out_dims() # finds output minimal size to get all eyes in the same place
|
||||
|
||||
#choose your final step
|
||||
#my_movie.show_faces(1000)
|
||||
#my_movie.save_faces("output")
|
||||
my_movie.save_movie("output")
|
||||
|
||||
print "Facemovie finished !"
|
||||
@@ -6,7 +6,7 @@ Created on 16 avr. 2012
|
||||
|
||||
import os
|
||||
from context import facemovie
|
||||
from facemovie.facemovie import FaceMovie
|
||||
from facemovie.Facemovie import FaceMovie
|
||||
|
||||
if __name__ == '__main__':
|
||||
root_fo = "C:\Users\jll\perso\workspace\FaceMovie"
|
||||
@@ -16,15 +16,19 @@ if __name__ == '__main__':
|
||||
|
||||
my_movie = FaceMovie(in_fo, out_fo, par_fo)
|
||||
my_movie.list_guys() # find images in input folder
|
||||
my_movie.search_faces() # search for images with faces
|
||||
|
||||
# listing training files
|
||||
print my_movie.face_params.get_types()
|
||||
|
||||
#my_movie.search_faces() # search for images with faces
|
||||
# I want to change images so that all faces have the same size
|
||||
my_movie.normalize_faces() # sets all faces to the same size
|
||||
#my_movie.normalize_faces() # sets all faces to the same size
|
||||
# I want to know the size of the output frame, knowing initial conditions
|
||||
my_movie.find_out_dims() # finds output minimal size to get all eyes in the same place
|
||||
#my_movie.find_out_dims() # finds output minimal size to get all eyes in the same place
|
||||
|
||||
#choose your final step
|
||||
#my_movie.show_faces(1000)
|
||||
#my_movie.save_faces("output")
|
||||
my_movie.save_movie("output")
|
||||
#my_movie.save_movie("output")
|
||||
|
||||
print "Facemovie finished !"
|
||||
Reference in New Issue
Block a user