How to combine three colour channels into the 'best' sRGB representation using a colour checker chart?
Afficher commentaires plus anciens
There is probably no 'right' answer for this but I would appreciate some advice from image experts!
I have a 16-bit 1280 x1024 monochrome camera. I want to use this to create some realistic colour pictures (or as close as possible to a true rgb representation). To do this, I am using three colour bandpass filters and a white light source. My filters are narrower than the Bayer rgb filters on a professional camera.
For interest, the filters are:
- Bandpass λ= 593 – 666 nm ("red filter")
- Bandpass λ= 540 – 577 nm ("green filter")
- Bandpass λ= 430 – 490 nm ("blue filter")
My workflow:
- I shine the white light source on an xrite colour checker, which is a chart of 24 colour squares, of which red, green and blue are primary colours typical of colour photographic processing.
- I take a monochrome image of the colour checker squares through each of the three filters. So I now have 3 greyscale images of the squares. I can then import the image greyscale values into Matlab to create a 1280 x 1024 x 3 array.
- I scale and bias the array values, and then export a RGB image that is as close as possible to the 'true' colours. I know that it can't be perfect.
How do I do step 3?
The xrite colour checker squares have known sRGB values (0-255). For example: red square [180 49 57], green square [67 149 74], blue square [35 63 147] (Source - page 5).
For my three monochrome images, when I examine the greyscale values of the red, green and blue squares under the three filters, I get the following mean greyscale values.
- Image 1 - Red filter: Red square 28540, green square 8507, blue square 4077
- Image 2 - Green filter: Red square 6636, green square 35605, blue square 8917
- Image 3 - Blue filter: Red square 11129, green square 26291, blue square 51405.
Proportionately, these raw figures don't look far off the colour checker's sRGB values, which is a good start. Perhaps I just need a linear combination that minimises the difference.
(It looks as though the blue content of the white light was higher than the red/green content because the greyscale values are generally higher for the blue filter. So some normalisation of images 1-3 may be required.)
Anyone have experience with this?
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Display Point Clouds dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!