Exemple #1
0
import copy
import logging
import os
import sys

if __name__ == '__main__':
    sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..'))

from telemetry.internal.image_processing import cv_util
from telemetry.internal.image_processing import frame_generator as \
    frame_generator_module
from telemetry.internal.image_processing import video_file_frame_generator
from telemetry.internal.util import external_modules

np = external_modules.ImportRequiredModule('numpy')
cv2 = external_modules.ImportRequiredModule('cv2')


class ScreenFinder(object):
    """Finds and extracts device screens from video.

  Sample Usage:
    sf = ScreenFinder(sys.argv[1])
    while sf.HasNext():
      ret, screen = sf.GetNext()

  Attributes:
    _lost_corners: Each index represents whether or not we lost track of that
        corner on the previous frame. Ordered by [top-right, top-left,
        bottom-left, bottom-right]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import unittest

from telemetry import decorators
from telemetry.core import util
from telemetry.internal.image_processing import frame_generator
from telemetry.internal.util import external_modules

try:
    cv2 = external_modules.ImportRequiredModule('cv2')
except (ImportError, NotImplementedError):
    pass
else:

    class VideoFileFrameGeneratorTest(unittest.TestCase):
        def __init__(self, *args, **kwargs):
            super(VideoFileFrameGeneratorTest, self).__init__(*args, **kwargs)
            # Import modules with dependencies that may not be preset in test setup so
            # that importing this unit test doesn't cause the test runner to raise an
            # exception.
            from telemetry.internal.image_processing import video_file_frame_generator
            self.VideoFileFrameGenerator = \
                video_file_frame_generator.VideoFileFrameGenerator

        # https://github.com/catapult-project/catapult/issues/3510
        @decorators.Disabled('all')
        @decorators.Isolated