[mousetrap/gnome3-wip: 48/240] Simplify camera.py; fix convention in test_camera.py
- From: Heidi Ellis <heidiellis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mousetrap/gnome3-wip: 48/240] Simplify camera.py; fix convention in test_camera.py
- Date: Mon, 8 Sep 2014 15:16:34 +0000 (UTC)
commit 01cf70023621f857b5918cf2b232268d97bc3aaf
Author: Stoney Jackson <dr stoney gmail com>
Date: Sun May 18 11:48:22 2014 -0400
Simplify camera.py; fix convention in test_camera.py
src/mousetrap/core/camera.py | 55 +++++++++++++++++-------------------
src/mousetrap/core/test_camera.py | 2 +-
2 files changed, 27 insertions(+), 30 deletions(-)
---
diff --git a/src/mousetrap/core/camera.py b/src/mousetrap/core/camera.py
index 595cdf2..3d31f0a 100644
--- a/src/mousetrap/core/camera.py
+++ b/src/mousetrap/core/camera.py
@@ -18,44 +18,41 @@
# You should have received a copy of the GNU General Public License
# along with mouseTrap. If not, see <http://www.gnu.org/licenses/>.
-__id__ = "$Id$"
-__version__ = "$Revision$"
-__date__ = "$Date$"
+__id__ = "$Id$"
+__version__ = "$Revision$"
+__date__ = "$Date$"
__copyright__ = "Copyright (c) 2008 Flavio Percoco Premoli"
-__license__ = "GPLv2"
+__license__ = "GPLv2"
import cv2
class Camera(object):
- def __init__(self, dev=0):
- self.dev_id = None
- self.capture = None
- self.img = None
-
- self.set_dev_id(dev)
- self.start_camera()
+ def __init__(self, device_id=0):
+ self._device_id = device_id
+ self._capture = None
def start_camera(self):
- """
- Start a new Video capture feed with the Web Camera
- """
- self.capture = cv2.VideoCapture(self.dev_id)
-
- def set_dev_id(self, dev=0):
- """
- Sets the camera id for the device to be used
- Arguments:
- - dev: The Camera's Id (Default is 0)
- """
- self.dev_id = dev
+ self._capture = cv2.VideoCapture(self._device_id)
def get_image(self):
- """
- Reads a new image from the camera
- Returns the new image
- """
- ret, self.img = self.capture.read()
+ if not self.is_started():
+ raise CameraError("Camera has not been started.")
+ return self._read_image()
+
+ def is_started(self):
+ return self._capture is not None and self._capture.isOpened()
+
+ def _read_image(self):
+ read_was_successful, image = self._capture.read()
+ if not read_was_successful:
+ raise CameraError("Read was not successful.")
+ return image
+
+
+class CameraError(Exception):
- return self.img
\ No newline at end of file
+ def __init__(self, message):
+ super(CameraError, self).__init__()
+ self.message = message
diff --git a/src/mousetrap/core/test_camera.py b/src/mousetrap/core/test_camera.py
index a99ddb1..53736d6 100644
--- a/src/mousetrap/core/test_camera.py
+++ b/src/mousetrap/core/test_camera.py
@@ -10,7 +10,7 @@ class test_camera(unittest.TestCase):
self.camera = Camera()
def test_get_image_withStart_imageReturned(self):
- self.camera.start_camera();
+ self.camera.start_camera()
image = self.camera.get_image()
self.assertTrue(
image is not None,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]