added preflight check
This commit is contained in:
@@ -70,17 +70,22 @@ def test_sensor_detect_motion_ignores_invalid_region():
|
||||
backend="cpu",
|
||||
)
|
||||
try:
|
||||
# get_img() resizes the frame to the config's camera.resolution_stitch
|
||||
# and stores valid_mask at that same resolution, so the flow buffer must
|
||||
# be sized from sensor.valid_mask rather than from the raw frame.
|
||||
frame = np.zeros((728, 672, 3), dtype=np.uint8)
|
||||
mask = np.zeros((728, 672), dtype=bool)
|
||||
mask[180:540, 160:512] = True
|
||||
sensor.get_img(frame=frame, already_processed=True, valid_mask=mask)
|
||||
|
||||
sensor.flow = np.zeros((728, 672, 2), dtype=np.float32)
|
||||
sensor.flow[~mask] = 10.0
|
||||
flow_shape = sensor.valid_mask.shape
|
||||
assert sensor.valid_mask.any() and not sensor.valid_mask.all()
|
||||
sensor.flow = np.zeros((*flow_shape, 2), dtype=np.float32)
|
||||
sensor.flow[~sensor.valid_mask] = 10.0
|
||||
assert not sensor.detect_motion(threshold=1.0)
|
||||
|
||||
sensor.flow[:] = 0.0
|
||||
sensor.flow[mask] = 10.0
|
||||
sensor.flow[sensor.valid_mask] = 10.0
|
||||
assert sensor.detect_motion(threshold=1.0)
|
||||
finally:
|
||||
sensor.disconnect()
|
||||
|
||||
Reference in New Issue
Block a user