34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
|
|
|
|
|
|
|
|
|
|
|
class OpenCVControlSource(BaseControlSource):
|
|
def __init__(self, cap: cv2.VideoCapture, parent=None):
|
|
super().__init__(parent)
|
|
self.cap = cap
|
|
|
|
def set_parameter(self, name, value):
|
|
prop_id = getattr(cv2, name, None)
|
|
if prop_id is None:
|
|
self.errorOccurred.emit(f"Nieznany parametr {name}")
|
|
return
|
|
self.cap.set(prop_id, value)
|
|
self.parameterChanged.emit(name, value)
|
|
|
|
def get_parameter(self, name):
|
|
prop_id = getattr(cv2, name, None)
|
|
if prop_id is None:
|
|
self.errorOccurred.emit(f"Nieznany parametr {name}")
|
|
return None
|
|
return self.cap.get(prop_id)
|
|
|
|
def list_parameters(self):
|
|
return {
|
|
"CAP_PROP_BRIGHTNESS": self.cap.get(cv2.CAP_PROP_BRIGHTNESS),
|
|
"CAP_PROP_CONTRAST": self.cap.get(cv2.CAP_PROP_CONTRAST),
|
|
"CAP_PROP_SATURATION": self.cap.get(cv2.CAP_PROP_SATURATION),
|
|
"CAP_PROP_GAIN": self.cap.get(cv2.CAP_PROP_GAIN),
|
|
"CAP_PROP_EXPOSURE": self.cap.get(cv2.CAP_PROP_EXPOSURE),
|
|
} |