# Copyright (c) 2012 The Chromium OS 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 glob, os import numpy as np # Dimension padding/unpadding function for converting points matrices to # the OpenCV format (channel-based). def Pad(x): return np.expand_dims(x, axis=0) def Unpad(x): return np.squeeze(x) class Pod(object): '''A POD (plain-old-data) object containing arbitrary fields.''' def __init__(self, **args): self.__dict__.update(args) def __repr__(self): '''Returns a representation of the object, including its properties.''' return (self.__class__.__name__ + '(' + ', '.join('%s=%s' % (k, v) for k, v in sorted(self.__dict__.items()) if not k.startswith('_')) + ')') def find_camera(): """ Find a V4L camera device. @return (device_name, device_index). If no camera is found, (None, None). """ cameras = [os.path.basename(camera) for camera in glob.glob('/sys/bus/usb/drivers/uvcvideo/*/video4linux/video*')] if not cameras: return None, None camera = cameras[0] return camera, int(camera[5:])