mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Fix autotracking absolute zoom interpolation logic (#14139)
This commit is contained in:
parent
0f2cff5078
commit
b9e74ee9ab
@ -406,19 +406,19 @@ class OnvifController:
|
|||||||
# The onvif spec says this can report as +INF and -INF, so this may need to be modified
|
# The onvif spec says this can report as +INF and -INF, so this may need to be modified
|
||||||
pan = numpy.interp(
|
pan = numpy.interp(
|
||||||
pan,
|
pan,
|
||||||
[-1, 1],
|
|
||||||
[
|
[
|
||||||
self.cams[camera_name]["relative_fov_range"]["XRange"]["Min"],
|
self.cams[camera_name]["relative_fov_range"]["XRange"]["Min"],
|
||||||
self.cams[camera_name]["relative_fov_range"]["XRange"]["Max"],
|
self.cams[camera_name]["relative_fov_range"]["XRange"]["Max"],
|
||||||
],
|
],
|
||||||
|
[-1, 1],
|
||||||
)
|
)
|
||||||
tilt = numpy.interp(
|
tilt = numpy.interp(
|
||||||
tilt,
|
tilt,
|
||||||
[-1, 1],
|
|
||||||
[
|
[
|
||||||
self.cams[camera_name]["relative_fov_range"]["YRange"]["Min"],
|
self.cams[camera_name]["relative_fov_range"]["YRange"]["Min"],
|
||||||
self.cams[camera_name]["relative_fov_range"]["YRange"]["Max"],
|
self.cams[camera_name]["relative_fov_range"]["YRange"]["Max"],
|
||||||
],
|
],
|
||||||
|
[-1, 1],
|
||||||
)
|
)
|
||||||
|
|
||||||
move_request.Speed = {
|
move_request.Speed = {
|
||||||
@ -531,11 +531,11 @@ class OnvifController:
|
|||||||
# function takes in 0 to 1 for zoom, interpolate to the values of the camera.
|
# function takes in 0 to 1 for zoom, interpolate to the values of the camera.
|
||||||
zoom = numpy.interp(
|
zoom = numpy.interp(
|
||||||
zoom,
|
zoom,
|
||||||
[0, 1],
|
|
||||||
[
|
[
|
||||||
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Min"],
|
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Min"],
|
||||||
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Max"],
|
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Max"],
|
||||||
],
|
],
|
||||||
|
[0, 1],
|
||||||
)
|
)
|
||||||
|
|
||||||
move_request.Speed = {"Zoom": speed}
|
move_request.Speed = {"Zoom": speed}
|
||||||
@ -686,11 +686,11 @@ class OnvifController:
|
|||||||
# store absolute zoom level as 0 to 1 interpolated from the values of the camera
|
# store absolute zoom level as 0 to 1 interpolated from the values of the camera
|
||||||
self.ptz_metrics[camera_name].zoom_level.value = numpy.interp(
|
self.ptz_metrics[camera_name].zoom_level.value = numpy.interp(
|
||||||
round(status.Position.Zoom.x, 2),
|
round(status.Position.Zoom.x, 2),
|
||||||
[0, 1],
|
|
||||||
[
|
[
|
||||||
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Min"],
|
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Min"],
|
||||||
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Max"],
|
self.cams[camera_name]["absolute_zoom_range"]["XRange"]["Max"],
|
||||||
],
|
],
|
||||||
|
[0, 1],
|
||||||
)
|
)
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"{camera_name}: Camera zoom level: {self.ptz_metrics[camera_name].zoom_level.value}"
|
f"{camera_name}: Camera zoom level: {self.ptz_metrics[camera_name].zoom_level.value}"
|
||||||
|
Loading…
Reference in New Issue
Block a user