I am having hazy underwater image (As shown in Figure) and I want to estimate the depth information of the scene from a single image. What could be a better method for this?
If you have only different intensities of pixels describing blue water; you can simply use the upper mentioned suggestion " Assume intensity is proportional to depth".
But for this given image as you have another part containing some plants and rocks with some complicated features. I think you need to use an already trained ANN (You don't have a sufficient number of data set to train it, in this case).
If you prefer to test classical solutions; I think you may get a promising result if you test Gabor filter + PCA/K-means; using this technique for this given image you may arrive to distinguish between three distinct regions (The rocky region + 2 regions of deep water and shallow water). In any case, it is hard.