diff --git a/bob/db/cuhk_cufs/query.py b/bob/db/cuhk_cufs/query.py index 4943c3d540fa3962eefa33998cd56b3313d51294..2b3e203c3e6309f3650dcdf962a891ec0e985513 100644 --- a/bob/db/cuhk_cufs/query.py +++ b/bob/db/cuhk_cufs/query.py @@ -35,11 +35,14 @@ class Database(bob.db.verification.utils.SQLiteDatabase, bob.db.verification.uti """ - def __init__(self, original_directory = None, original_extension = None, annotation_directory = None): + def __init__(self, original_directory = None, original_extension = None, arface_directory="", xm2vts_directory=""): # call base class constructors to open a session to the database bob.db.verification.utils.SQLiteDatabase.__init__(self, SQLITE_FILE, File) bob.db.verification.utils.ZTDatabase.__init__(self, original_directory=original_directory, original_extension=original_extension) + self.arface_directory = arface_directory + self.xm2vts_directory = xm2vts_directory + def protocols(self): return PROTOCOLS @@ -48,6 +51,35 @@ class Database(bob.db.verification.utils.SQLiteDatabase, bob.db.verification.uti return PURPOSES + def original_file_name(self, file, check_existence = True): + """This function returns the original file name for the given File object. + Keyword parameters: + file : :py:class:`File` or a derivative + The File objects for which the file name should be retrieved + check_existence : bool + Check if the original file exists? + Return value : str + The original file name for the given File object + """ + # check if directory is set + + original_directory = self.original_directory + if f.modality=="photo": + if f.client.original_database=="xm2vts": + original_directory = self.xm2vts + elif f.client.original_database=="arface": + original_directory = self.arface + + + if not original_directory or not self.original_extension: + raise ValueError("The original_directory and/or the original_extension were not specified in the constructor.") + # extract file name + file_name = file.make_path(original_directory, self.original_extension) + if not check_existence or os.path.exists(file_name): + return file_name + raise ValueError("The file '%s' was not found. Please check the original directory '%s' and extension '%s'?" % (file_name, original_directory, self.original_extension)) + + def objects(self, groups = None, protocol = None, purposes = None, model_ids = None, **kwargs): """ This function returns lists of File objects, which fulfill the given restrictions.