Properly implemented zoom method
This commit is contained in:
parent
709372208a
commit
f70da25c1c
1 changed files with 9 additions and 10 deletions
|
|
@ -100,6 +100,8 @@ class StreamingCamera(BaseCamera):
|
||||||
'record_active': False,
|
'record_active': False,
|
||||||
'preview_active': False,
|
'preview_active': False,
|
||||||
})
|
})
|
||||||
|
# Reset variable states
|
||||||
|
self.set_zoom(1.0)
|
||||||
|
|
||||||
# Default camera config
|
# Default camera config
|
||||||
self._config.update({
|
self._config.update({
|
||||||
|
|
@ -243,20 +245,17 @@ class StreamingCamera(BaseCamera):
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"Cannot update camera config while recording is active.")
|
"Cannot update camera config while recording is active.")
|
||||||
|
|
||||||
def change_zoom(self, zoom_value: int=1) -> None:
|
def set_zoom(self, zoom_value: float=1.) -> None:
|
||||||
"""Change the camera zoom, handling recentering and scaling.
|
|
||||||
|
|
||||||
Todo:
|
|
||||||
TODO: Needs to be re-implemented
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
zoom_value = float(zoom_value)
|
Change the camera zoom, handling recentering and scaling.
|
||||||
if zoom_value < 1:
|
"""
|
||||||
zoom_value = 1
|
self.state['zoom_value'] = float(zoom_value)
|
||||||
|
if self.state['zoom_value'] < 1:
|
||||||
|
self.state['zoom_value'] = 1
|
||||||
# Richard's code for zooming !
|
# Richard's code for zooming !
|
||||||
fov = self.camera.zoom
|
fov = self.camera.zoom
|
||||||
centre = np.array([fov[0] + fov[2]/2.0, fov[1] + fov[3]/2.0])
|
centre = np.array([fov[0] + fov[2]/2.0, fov[1] + fov[3]/2.0])
|
||||||
size = 1.0/zoom_value
|
size = 1.0/self.state['zoom_value']
|
||||||
# If the new zoom value would be invalid, move the centre to
|
# If the new zoom value would be invalid, move the centre to
|
||||||
# keep it within the camera's sensor (this is only relevant
|
# keep it within the camera's sensor (this is only relevant
|
||||||
# when zooming out, if the FoV is not centred on (0.5, 0.5)
|
# when zooming out, if the FoV is not centred on (0.5, 0.5)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue