Can curves alone perfectly match one camera or film color rendering to another?
Asked 7/29/2014
2 views
2 answers
0
Is it theoretically possible to make images from one camera match the color rendering of another camera or film stock exactly using RGB curves alone?
For example, could a Nikon DSLR be made to match the look of Fujifilm JPEGs, or a digital camera be made to match a film like Velvia, by photographing a color chart under controlled conditions and building red, green, and blue tone curves from the measured differences?
In other words: if I photograph the same color target with both systems under the same lighting, can I derive channel curves that will transform every image from camera B into the color tone of camera A, or is a more complete color-management/profile approach required?
Originally by Photography Stack Exchange contributor. Source · Licensed CC BY-SA 4.0
Photography Stack Exchange contributor
12y ago
2 Answers
2
Well, let's say camera A is the Velvia, camera B is your Nikon.
- Camera A converts physical colors to virtual colors ("pixels") using funcA.
- Camera B converts physical colors to virtual colors (pixels) using funcB.
- Establish an ICC profile (ICCA) that converts the pixel color to viewing environment color.
- Establish an ICC profile (ICCB) that converts the pixel color to viewing environment color.
When you take a photo of e.g. a physical red, in your viewing environment you will see the same red, no matter whether you are using camera A or B.
Red -> funcA -> ICCA -> monitor color (red) and
Red -> funcB -> ICCB -> monitor color (red).
So you can say that:
any physical color C -> funcB -> ICCB -> invert ICCA == funcA(the physical color C).
And that is cool because funcA(any physical color) is exactly the color output of camera A.
In other words the things to do:
- generate the inverse of ICCA
- apply inverse ICCA to your pixel colors in your viewing environment.
The inverse of ICCA will be three curves, R, G and B. You should make the inverse as high resolution as possible to avoid banding.
What do I mean by "inverse"? It means that if you apply ICCA and then inverse ICCA, then you get back the same original image.
There are quite a few open source tools out there to manipulate ICC data, and with a bit of scripting, you can create the inverting solution.
NOTE: a quick search shows this page, with having the keywords: "inverting ICC profiles; limits to inversion accuracy". So after inverting the profile, you might end up with limited accuracy and probably will need to do manual tuning of the inverted curve.
Also, do not forget that dark regions have much lower information content that bright regions, and you will see more mismatch there because of quantization noise.
Originally by user24785. Source · Licensed CC BY-SA 4.0
user24785
12y ago
0
Generated from our catalog & community — verify before relying on it.
Not perfectly with curves alone.
RGB curves can help approximate the look, but they only remap each channel’s tone values. Real camera/film color rendering is more complex: different sensors and film respond differently to spectra, and the mapping from scene colors to image colors is not just three independent tone curves.
A better theoretical model is color profiling. If camera A and camera B each have a profile that maps their recorded RGB values to a common viewing or reference color space, then you can convert from B’s rendering toward A’s rendering through those profiles. That’s essentially what ICC-style color management is for.
So:
- For a specific chart under fixed lighting, your curve method may produce a close match.
- For all subjects and all lighting, it will not reliably transform every Nikon image into a Fujifilm or Velvia equivalent.
- To get the most consistent match, use proper camera profiling/color management rather than only curves.
In short: curves can imitate a style, but a full profile-based transform is the correct approach if you want the closest possible cross-camera color match.
Recommended products
UniqueBot
AI12y ago
Your Answer
Related Questions
How can I crop one camera's photo to match another camera's field of view?
How can I create my own film-style color profiles in Aperture 3?
How can I match color and white balance between two JPEGs for a panorama in Photoshop CS6?
How do I apply the same Lens Correction and Transform settings to multiple Lightroom photos?
What does Lightroom’s Camera Calibration/Profile setting actually change, and when should you choose it?