depthai-core icon indicating copy to clipboard operation
depthai-core copied to clipboard

[Feature-Request] Configure ISO Independently of Exposure Time

Open justin-larking-pk opened this issue 2 years ago • 4 comments

Start with the why:

A lowered exposure can be desirable in applications where minimising motion blur/image distortion is important (i.e. on moving platforms) especially when rolling shutter is involved.

Move to the what:

Currently a set exposure with a set gain is configurable. via: ctrl = setManualExposure(exposure, iso value) If a minimised exposure is desirable, a larger iso could be used to decrease the exposure (assuming auto exposure algorithm takes this into account) This would allow the camera to be configured in order to minimise exposure time whiel still having autoexposure. At the sacrifice of image quality.

Move to the how:

thus ideally we could have separated manual exposure and gain configuration like: ctrl = setManualExposure(exposure) ctrl = setManualIso(iso)

justin-larking-pk avatar Mar 25 '22 01:03 justin-larking-pk

I agree this would be very valuable, but unfortunately it's not easy to implement, as the 3A library on device controls both exposure and ISO, and the rule of combining them is described in the camera tuning database. I added more info here (related): https://github.com/luxonis/depthai-core/issues/304#issuecomment-997121371

We'll check what's possible to do.

alex-luxonis avatar Mar 25 '22 10:03 alex-luxonis

Has there been any progress on this issue (or the related #304)?

wdimmit avatar Nov 22 '22 23:11 wdimmit

Having this feature would solve our problems too in high vibration environment where we want to put a cap on shutter speed while still allowing exposure to be adjusted automatically.

priyajakhar avatar May 26 '23 13:05 priyajakhar

It's possible now to set an upper limit for auto-exposure: https://github.com/luxonis/depthai-python/pull/921. Once the limit is reached, AE will increase ISO as needed. Example: cam.initialControl.setAutoExposureLimit(5000) # microseconds. Can also be updated at runtime

alex-luxonis avatar Nov 15 '23 11:11 alex-luxonis