For those who have either used Picasa/Photoshop, they would see different image enhancement options such as:

1. Change exposure
3. Change highlights
4. Change vibrance

I have searched online a lot about algorithms for doing the above operations. I know that these can be achieved from basic operations such by changing /saturation/contrast or adjusting dynamic range of an image. However, if somebody has used these algorithms then it is clear that it is different than just naively changing the basic parameters.

EDIT: I found a submission on MATLAB file exchange which has a nice GUI and implements the imadjust (i.e. adjust the dynamic range of image) command. I think this command is the key to emulate the above listed effects. I am posting some examples:

I am not asking about the auto-color/auto-enhance functions as they may be complex. If someone knows how to implement any of these algorithms, it would be great.

Change exposure: