Enhancing underwater images is a difficult endeavour. One must do the following (this applies to any scientific pursuit).
1 Gather empirical data and develop models to support the data.
2 Develop a set of algorithms that can apply the models in a meaningful and practical way.
3 Design and generalize the algorithms so that they can be implemented in an efficient manner.
Even if an algorithm is reasonably robust, it would likely require lots of input data from the user and be incredibly slow, which is the case of the paper being asked about.
Rather than agonizing over the paper or waiting for someone to implement it, let us try to understand the problem a bit more. Here is how I would explain and tackle the problem. Consider this work flow.
1 Colour and brightness balance A.
2 Haze removal.
3 Colour and brightness balance B.
When we consider enhancement, we are mainly looking to increase visibility. We often use other words to describe that: clarity and contrast. Visibility varies, depending on where we are in the water, at what and where we are looking, and what else is in and happening there. There is no short of variables because there is so much going on in the water: turbulence, particles, occlusion, temperature, sources of light, etc.
What water does is attenuate (reduce), transmit and scatter (bounce) light. Its properties are very different from air. Certain colours are attenuated and scattered more than others and this changes with depth (transmission) and turbulence. This is the reason for the colour shifts.
However, colour restoration isn’t as simple as matching the scene as if there were no water. That would result in a very unnatural scene. I am of the opinion that achieving accurate colours with a series of colour checkers isn’t necessarily the best way to go about restoring the image, but I guess it depends on what one’s expectations are.
The problem at its core is still a haze removal problem. Since all removal algorithms hold certain assumptions about the scene, the role of step 1 is to make the image palatable for the algorithm. I use the terms colour balance instead of white balance, and brightness balance instead of exposure, because white balance and exposure corrections only shift the image uniformly. We need to adjust the colour, exposure, contrast, among other features, with respect to scene data such as depth.
Step 3 is about doing the final touches. If you are really patient after the hard work of steps 1-2, step 3 could actually be step 1, where you loop the steps until you get a satisfactory result.