How to enhance underwater image?

13 views (last 30 days)
New Innovations
New Innovations on 15 Dec 2014
Answered: DGM on 5 Jul 2022
I am doing a project on underwater image enhancement.I am new to the Matlab /image processing tool box. Can someone give me ideas,methods,programs,or some suggestions on how to enhance under water image so the blue dominance in the picture can be eliminated.Please help....
  3 Comments
John D'Errico
John D'Errico on 16 Dec 2014
My gut tells me that there simply is little color information here, besides being BLUE and massively so.
While you could remove the blue cast by a white point correction (or by some other scheme, it really does not matter which you choose), this would probably yield little improvement. Instead of various shades of blue, you would probably end up with various shades of gray. Essentially, you cannot recover information that is simply not there.
In order to have a reasonable image here, that reproduces the colors you would see under a more standard illuminant, you would need to illuminate your scene with something at least close to a normal illuminant. You need to re-capture that image. Otherwise, you are left only with an image that has very little information content, here, only various shades of blue.
Image Analyst
Image Analyst on 16 Dec 2014
I tried to do a white point correction in Photoshop with that image and the resultant image looked very bad.

Sign in to comment.

Answers (2)

John D'Errico
John D'Errico on 15 Dec 2014
Spoken as a non-expert in color (but I do know a fair amount.)
You will never be able to create perfect pictures from these, that have no blue tint to them, and have nice color resolution. Why? Assuming you are using ambient light, so it will be dominated by the blue wavelengths, then there will be relatively little useful signal present in the other color channels. You cannot create information that is not there.
Were I to try and do something, my suggestion would be essentially:
1. Convert the images from RGB to an XYZ domain.
2. Do a white point transformation in XYZ. Probably some form of von Kries transformation.
3. Convert back to RGB.
This would require a white point estimate. So you would want to have a picture of a white object, taken at the same time and location.
In the end, you will probably find that some parts of the scene may be blocked up, with little color resolution. It will be better than before, but these color corrected images will have their own flaws.
Better (but not at all easy) is to retake your pictures, but add illumination of your own. I.e., set up an underwater studio.

DGM
DGM on 5 Jul 2022
MIMT has a simple tool based on this paper.
A = imread('image.jpeg');
B = uwredcomp(A); % using defaults
imshow([A;B])
... although this particular image doesn't leave much to work with.

Categories

Find more on Marine and Underwater Vehicles in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!