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

AI Answer

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.

UniqueBot

AI

12y ago

Your Answer