Commit 9b7a7607 authored by Amir MOHAMMADI's avatar Amir MOHAMMADI
Browse files

Make the script work with video annoations too

parent 2fc780a4
...@@ -14,6 +14,7 @@ from __future__ import print_function ...@@ -14,6 +14,7 @@ from __future__ import print_function
import os import os
import argparse import argparse
import sys
import bob.bio.base import bob.bio.base
...@@ -28,6 +29,7 @@ def command_line_arguments(command_line_parameters): ...@@ -28,6 +29,7 @@ def command_line_arguments(command_line_parameters):
# add parameters # add parameters
parser.add_argument('-d', '--database', nargs = '+', help = 'Select the database for which the images plus annotations should be shown.') parser.add_argument('-d', '--database', nargs = '+', help = 'Select the database for which the images plus annotations should be shown.')
parser.add_argument('-V', '--video', action = 'store_true', help = 'Provide this flag if your database is a video database. For video databases, the annotations for the first frame is shown.')
parser.add_argument('-f', '--file-ids', nargs = '+', help = 'If given, only the images of the --database with the given file id are shown (non-existing IDs will be silently skipped).') parser.add_argument('-f', '--file-ids', nargs = '+', help = 'If given, only the images of the --database with the given file id are shown (non-existing IDs will be silently skipped).')
parser.add_argument('-a', '--annotation-directory', help = 'If given, use the annotations stored in the given annotation directory (this might be required for some databases).') parser.add_argument('-a', '--annotation-directory', help = 'If given, use the annotations stored in the given annotation directory (this might be required for some databases).')
parser.add_argument('-x', '--annotation-file-extension', default = '.pos', help = 'Annotation files have the given filename extension.') parser.add_argument('-x', '--annotation-file-extension', default = '.pos', help = 'Annotation files have the given filename extension.')
...@@ -67,12 +69,16 @@ def main(command_line_parameters=None): ...@@ -67,12 +69,16 @@ def main(command_line_parameters=None):
# open figure # open figure
if not args.self_test: if not args.self_test:
from matplotlib import pyplot from matplotlib import pyplot
pyplot.ion()
pyplot.show()
figure = pyplot.figure() figure = pyplot.figure()
for f in files: for f in files:
# load image # load image
logger.info("loading image for file %s", f.id) logger.info("loading image for file %s", f.id)
image = bob.io.base.load(database.original_file_names([f])[0]) image = f.load(database.original_directory, database.original_extension)
if args.video:
frame_id, image, _ = image[0]
# convert to color if it is not # convert to color if it is not
if image.ndim == 2: if image.ndim == 2:
image = bob.ip.color.gray_to_rgb(image) image = bob.ip.color.gray_to_rgb(image)
...@@ -94,6 +100,10 @@ def main(command_line_parameters=None): ...@@ -94,6 +100,10 @@ def main(command_line_parameters=None):
if not annotations: if not annotations:
logger.warn("Could not find annotations for file %s", f.id) logger.warn("Could not find annotations for file %s", f.id)
if args.video:
assert frame_id in annotations, annotations
annotations = annotations[frame_id]
if not args.self_test: if not args.self_test:
pyplot.clf() pyplot.clf()
pyplot.imshow(image.transpose(1,2,0)) pyplot.imshow(image.transpose(1,2,0))
...@@ -112,5 +122,10 @@ def main(command_line_parameters=None): ...@@ -112,5 +122,10 @@ def main(command_line_parameters=None):
pyplot.gca().set_aspect("equal") pyplot.gca().set_aspect("equal")
pyplot.gca().autoscale(tight=True) pyplot.gca().autoscale(tight=True)
pyplot.pause(0.001)
raw_input("Press Enter to continue to the next image (or Ctrl-C + Enter to exit)") input_text = "Press Enter to continue to the next image (or Ctrl-C + Enter to exit)"
if sys.version_info >= (3, 0):
input(input_text)
else:
raw_input(input_text)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment