File 0004-OpenCV4-support.patch of Package horus

From b03444ff6be3c7c16d1e14d724914ef23ffc688f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 20 Feb 2022 07:46:21 +0100
Subject: [PATCH 4/4] OpenCV4 support

---
 src/horus/engine/driver/camera.py | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/src/horus/engine/driver/camera.py b/src/horus/engine/driver/camera.py
index ca937c1..e7a3fda 100644
--- a/src/horus/engine/driver/camera.py
+++ b/src/horus/engine/driver/camera.py
@@ -166,7 +166,8 @@ class Camera(object):
             brightness = self.get_brightness()
             if brightness is not None:
                 c_bri = brightness >= 2
-        except:
+        except Exception as e:
+            logger.error(repr(e))
             raise WrongCamera()
 
         if not c_exp or not c_bri:
@@ -242,7 +243,7 @@ class Camera(object):
                     ctl.set_val(self._line(value, 0, self._max_brightness, ctl.min, ctl.max))
                 else:
                     value = int(value) / self._max_brightness
-                    ret = self._capture.set(cv2.cv.CV_CAP_PROP_BRIGHTNESS, value)
+                    ret = self._capture.set(cv2.CAP_PROP_BRIGHTNESS, value)
                     if system == 'Linux' and ret:
                         raise InputOutputError()
                 self._updating = False
@@ -257,7 +258,7 @@ class Camera(object):
                     ctl.set_val(self._line(value, 0, self._max_contrast, ctl.min, ctl.max))
                 else:
                     value = int(value) / self._max_contrast
-                    ret = self._capture.set(cv2.cv.CV_CAP_PROP_CONTRAST, value)
+                    ret = self._capture.set(cv2.CAP_PROP_CONTRAST, value)
                     if system == 'Linux' and ret:
                         raise InputOutputError()
                 self._updating = False
@@ -272,7 +273,7 @@ class Camera(object):
                     ctl.set_val(self._line(value, 0, self._max_saturation, ctl.min, ctl.max))
                 else:
                     value = int(value) / self._max_saturation
-                    ret = self._capture.set(cv2.cv.CV_CAP_PROP_SATURATION, value)
+                    ret = self._capture.set(cv2.CAP_PROP_SATURATION, value)
                     if system == 'Linux' and ret:
                         raise InputOutputError()
                 self._updating = False
@@ -291,10 +292,10 @@ class Camera(object):
                     ctl.set_val(value)
                 elif system == 'Windows':
                     value = int(round(-math.log(value) / math.log(2)))
-                    self._capture.set(cv2.cv.CV_CAP_PROP_EXPOSURE, value)
+                    self._capture.set(cv2.CAP_PROP_EXPOSURE, value)
                 else:
                     value = int(value) / self._max_exposure
-                    ret = self._capture.set(cv2.cv.CV_CAP_PROP_EXPOSURE, value)
+                    ret = self._capture.set(cv2.CAP_PROP_EXPOSURE, value)
                     if system == 'Linux' and ret:
                         raise InputOutputError()
                 self._updating = False
@@ -313,7 +314,7 @@ class Camera(object):
             if self._frame_rate != value:
                 self._frame_rate = value
                 self._updating = True
-                self._capture.set(cv2.cv.CV_CAP_PROP_FPS, value)
+                self._capture.set(cv2.CAP_PROP_FPS, value)
                 self._updating = False
 
     def set_resolution(self, width, height):
@@ -326,14 +327,14 @@ class Camera(object):
                 self._updating = False
 
     def _set_width(self, value):
-        self._capture.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, value)
+        self._capture.set(cv2.CAP_PROP_FRAME_WIDTH, value)
 
     def _set_height(self, value):
-        self._capture.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, value)
+        self._capture.set(cv2.CAP_PROP_FRAME_HEIGHT, value)
 
     def _update_resolution(self):
-        self._width = int(self._capture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH))
-        self._height = int(self._capture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT))
+        self._width = int(self._capture.get(cv2.CAP_PROP_FRAME_WIDTH))
+        self._height = int(self._capture.get(cv2.CAP_PROP_FRAME_HEIGHT))
 
     def get_brightness(self):
         if self._is_connected:
@@ -341,7 +342,7 @@ class Camera(object):
                 ctl = self.controls['UVCC_REQ_BRIGHTNESS_ABS']
                 value = ctl.get_val()
             else:
-                value = self._capture.get(cv2.cv.CV_CAP_PROP_BRIGHTNESS)
+                value = self._capture.get(cv2.CAP_PROP_BRIGHTNESS)
                 value *= self._max_brightness
             return value
 
@@ -352,10 +353,10 @@ class Camera(object):
                 value = ctl.get_val()
                 value /= self._rel_exposure
             elif system == 'Windows':
-                value = self._capture.get(cv2.cv.CV_CAP_PROP_EXPOSURE)
+                value = self._capture.get(cv2.CAP_PROP_EXPOSURE)
                 value = 2 ** -value
             else:
-                value = self._capture.get(cv2.cv.CV_CAP_PROP_EXPOSURE)
+                value = self._capture.get(cv2.CAP_PROP_EXPOSURE)
                 value *= self._max_exposure
             return value
 
-- 
2.35.1

openSUSE Build Service is sponsored by