Add brightness-deadband property to intervalometer to prevent oscillation

- Add new brightness-deadband property (default 10.0, range 0.0-50.0)
- Implements deadband/tolerance zone around target brightness
- When brightness is within ±deadband, no adjustments are made
- Prevents oscillation at fast update rates (10-100ms)
- Allows fast corrections when brightness significantly deviates
- Enables fast ramp rates without flicker/oscillation
- Updated README with detailed deadband documentation and usage examples
- Solves exposure fluctuation issue at high frame rates with fast updates
This commit is contained in:
yair
2025-11-21 13:46:19 +02:00
parent 93d8da45e6
commit 45fa4c07b4
4 changed files with 106 additions and 17 deletions

View File

@@ -35,7 +35,7 @@ udpsink host=10.81.2.183 port=5000
now moving to automatic exposure (see [gstintervalometer](gst\intervalometer\gstintervalometer.c))
```pwsh
uv run .\scripts\launch-ids.py `
--config .\ini\2456x4pix-500top-cw.ini `
--config .\ini\2456x4pix-500top-cw-extragain.ini `
--device-id 1 `
--framerate 750 `
--gain 52 `
@@ -49,11 +49,27 @@ uv run .\scripts\launch-ids.py `
intervalometer enabled=true camera-element=cam `
ramp-rate=vslow `
update-interval=1000 `
gain-ma52 `
gain=52 `
log-file=timelapse.csv ! `
videocrop bottom=3 ! queue ! udpsink host=10.81.2.183 port=5000
```
```pwsh
$env:GST_DEBUG="linescan:5";
gst-launch-1.0 idsueyesrc config-file=ini/roi-night.ini `
exposure=5.25 framerate=200 gain=42 name=cam device-id=2 ! `
intervalometer enabled=true camera-element=cam `
ramp-rate=vslow `
update-interval=1000 `
gain-max=52 `
log-file=timelapse.csv ! `
videocrop bottom=3 ! `
queue ! `
linescan direction=vertical output-size=1900 ! `
videoconvert ! autovideosink
```
#### Receive and Display
```pwsh
uv run .\scripts\recv_raw_rolling.py --display-fps 60