          return dict()
  
      def load_image(self, filename):
          """ Load an image """
          src = os.path.join(self.folder, filename)
          logger.trace("Loading image: '%s'", src)
          image = cv2.imread(src)  # pylint: disable=no-member
          return image
  
      @staticmethod
      def save_image(output_folder, filename, image):
          """ Save an image """
 
</s> remove     def detect_faces(self, filename):
 </s> add     @staticmethod
    def detect_faces(filename, image): </s> remove         image = self.images.load_one_image(filename)
 </s> add  </s> remove         logger.info("Input Directory: %s", self.args.input_dir)
        input_images = get_image_paths(self.args.input_dir)
 </s> add     def get_input_images(self):
        """ Return the list of images or video file that is to be processed """
        if self.is_video:
            input_images = self.args.input_dir
        else:
            input_images = get_image_paths(self.args.input_dir) </s> remove         return image, detected_faces
 </s> add         return detected_faces
        if self.vid_cap:
            image = self.load_video_frame(filename)
        else:
            src = os.path.join(self.folder, filename)
            logger.trace("Loading image: '%s'", src)
            image = cv2.imread(src)  # pylint: disable=no-member
        return image

    def load_video_frame(self, filename):
        """ Load a requested frame from video """
        frame = os.path.splitext(filename)[0]
        logger.trace("Loading video frame: '%s'", frame)
        frame_no = int(frame[frame.rfind("_") + 1:])
        self.vid_cap.set(cv2.CAP_PROP_POS_FRAMES, frame_no)  # pylint: disable=no-member
        _, image = self.vid_cap.read()
          return dict()
  
      def load_image(self, filename):
          """ Load an image """
        if self.vid_cap:
            image = self.load_video_frame(filename)
        else:
            src = os.path.join(self.folder, filename)
            logger.trace("Loading image: '%s'", src)
            image = cv2.imread(src)  # pylint: disable=no-member
        return image

    def load_video_frame(self, filename):
        """ Load a requested frame from video """
        frame = os.path.splitext(filename)[0]
        logger.trace("Loading video frame: '%s'", frame)
        frame_no = int(frame[frame.rfind("_") + 1:])
        self.vid_cap.set(cv2.CAP_PROP_POS_FRAMES, frame_no)  # pylint: disable=no-member
        _, image = self.vid_cap.read()
        if self.vid_cap:
            image = self.load_video_frame(filename)
        else:
            src = os.path.join(self.folder, filename)
            logger.trace("Loading image: '%s'", src)
            image = cv2.imread(src)  # pylint: disable=no-member
        return image

    def load_video_frame(self, filename):
        """ Load a requested frame from video """
        frame = os.path.splitext(filename)[0]
        logger.trace("Loading video frame: '%s'", frame)
        frame_no = int(frame[frame.rfind("_") + 1:])
        self.vid_cap.set(cv2.CAP_PROP_POS_FRAMES, frame_no)  # pylint: disable=no-member
        _, image = self.vid_cap.read()
        if self.vid_cap:
            image = self.load_video_frame(filename)
        else:
            src = os.path.join(self.folder, filename)
            logger.trace("Loading image: '%s'", src)
            image = cv2.imread(src)  # pylint: disable=no-member
        return image

    def load_video_frame(self, filename):
        """ Load a requested frame from video """
        frame = os.path.splitext(filename)[0]
        logger.trace("Loading video frame: '%s'", frame)
        frame_no = int(frame[frame.rfind("_") + 1:])
        self.vid_cap.set(cv2.CAP_PROP_POS_FRAMES, frame_no)  # pylint: disable=no-member
        _, image = self.vid_cap.read()
          return image
  
      @staticmethod
      def save_image(output_folder, filename, image):
          """ Save an image """
keep keep keep keep replace replace replace keep keep keep keep keep
 Add ability to extract from and convert from a video file (#559)

* Add ability to extract from and convert from a video file

* Update cli helptext. Add filebrowser button for GUI input

* Add video support to Alignments Tool 
tools/lib_alignments/media.py