Image Exposure Controller
- msckf-vio Issue: About image exposure controller #41 
The auto exposure code is not open source because for one the actual implementation is ugly, and second because it ties into other software that is not open sourced.
Here a few (edited) notes that I sent to somebody who asked about how it works:
what we implemented is super simple but works well in practice:
You can go fancier by implementing
$\alpha \leq 1$, but in practice $\alpha = 1$ works just fine.
brightness is computed from every 16th row and column, so in fact only 1 out of every 256 is used for brightness computation
threshold on brightness:
we only change shutter time if
This is so that we don’t torture the ptgrey cameras with constant shutter speed changes.
region of interest (ROI) support: we compute brighness only from the bottom X%. Typically X=70, so we will ignore the top 30% of the image, because that’s often where the sun or sky are, and where we don’t usually pick up features.
configurable max shutter limit: the max shutter time is the min of the shutter time imposed by frame rate, and a configurable hard shutter limit (in case we get motion blur and decide we’d rather live with a darker image and/or gain noise than the motion blur).
auto gain: once we hit max shutter, we turn on auto gain (and when it get’s brighter again, we take the gain off first, then decrease shutter).
image_exposure_controlfor RS cam 
vo-autoexpose  : An auto-exposure algorithm for maxing out VO performance in challenging light conditions