Camera input profiles in darktable

Earlier @aurelienpierre said “That’s why we need better input profiles than the bogus RGB -> XYZ 3×3 matrice conversion”
and this reminds me I need to ask about these items.

I’ve been using RT a good while and can easily make profiles using my xrite passport and the supplied software (though how good the resulting DCPs are I’m not sure given comments here on pixls over several months).

Recently I’m also using darktable which can use ICC profiles, can’t use DCP ones, but also has built in profiles. However looking here (thanks @elstoc for link) my cameras aren’t covered, and in any case if I understand correctly, there are only 12 numbers per camera so this can’t be a very good profile.

So I’m after some good daylight ICC profiles for EOS 6D and 5DSR.

One possibility is that some kind soul may have them to share, perhaps with me providing something in return. If so, please get in touch.

@Morgan_Hardwood , I don’t think RT has a DCP for 5DSR. If I sent some target shots, would you be interested in making a DCP as usual for RT releases, but in addition, an ICC for darktable users?

Part of me thinks I should try to build my own, though looking at dcamprof and argyll, it all seems quite complex with plenty of possible software pitfalls along the way. I could try this under Ubuntu 18.04 or Windows 7. Does anyone have any thoughts on the best route please?

You might consider Argyll tools for icc camera profiles. With them, you can make matrix, matrix-shaper, and LUT profiles. In this topic, I’ve found @Elle’s articles quite instructive:

Your limitation will then be the 24-patch passport target, as there aren’t enough shades of the extreme colors to make a decent LUT profile. Matrix profiles work fine for images that don’t have extreme colors; where the LUT and shaper profiles come in handy is corralling extreme colors into a smaller gamut.


I think the recommended route for getting good color targets (better than XRite Passport) is geting those targets:

And then creating profiling mentioned by @ggbutcher
With better color targets and proper procedure to prepare them it should also be possible to create better input profiles.

@RawConvert sure. Would be good if you also sent a StdA (incandescent tungsten) shot, as those are where colors suffer the most.



Thanks! I didn’t even know X-Rite changed colours slightly. I’d be scarred to make my own targets, but the ones I’ve mentioned are rather cheap and come with necessary data too :slight_smile:

Unless DCP profiles are { camera RGB -> spectral domain } LUT, they are as bad as ICC profiles. ICC/DCP are container files. Notice that ICC profiles don’t have to be necessary matrices, they could be LUT too. It’s just some argument you pass to Argyll to generate the profile from some characterization measurements against a reference.

The point remains, whatever LUT you do these days will be { RGB -> XYZ }, so it’s super limited in term of versatility and accuracy.

Your cameras are covered by the default embedded matrices, taken from Adobe RGB DNG coefficient. The file you are referring to contains the “custom” matrices coefficients, which are totally optional and usually messed-up.

1 Like

@Morgan_Hardwood, thanks, I’ll be in touch.

@aurelienpierre -

Thanks, that sounds like a good start. I’m assuming this default applies when you choose “standard color matrix” for the input profile.

Ok, I won’t try these, but out of interest, how do you apply these?, I can’t see a camera-specific choice in the dropdown list.

Aurelien, what do you usually do regarding a camera profile?

1 Like

Simply the default matrix, since there is not much better for now.

They appear in the list in input colour profile module, when the custom profile for your camera is available (the camera is read in the EXIF).

1 Like

If one wanted to try an Adobe Standard matrix in darktable, one could use dcamprof or exiftool to extract the D65 ColorMatrix1 (check the whole metadata to make sure it is D65), convert the matrix to dcraw (each n*10000), put it in darktable’s external/adobe_coeff.c for the pertinent camera,and recompile.

Note: dt’s adobe_coeff.c has a comment suggesting use of ColorMatrix2; just check the metadata…

Edit: This qualifies as a “count the number of legs and divide by four” technique… :grin:

1 Like

I’ll expand on that. A DNG raw file contains two color matrices, one for illuminant D65 (midday sun) and one for StdA (incandescent tungsten, ye olde lightbulb). The matrices are stored in tags labelled just ColorMatrix1 and ColorMatrix2. To know which is which, there are another two tags which describe the illuminant, CalibrationIlluminant1 and CalibrationIlluminant2. It has long been standard practice for the D65 matrix to be under the ColorMatrix2 tag, so CalibrationIlluminant2=D65. However, some cameras, particularly many smartphones, disregard that practice. Not only that, but they also use other daylight illuminants, not just D65. Damn them.

1 Like

@ggbutcher -

Glen, Aurelien P says above “cameras are covered by the default embedded matrices, taken from Adobe RGB DNG coefficient”

Out of curiosity, is your suggestion simply duplicating darktable’s “default” profile, or am I (probably) missing the point?

Yeah, thought of that after I posted, a lot of the primaries in camconst.json, and some in darktable’s adobe_coeff table, are from the Adobe DCPs that come with DNGConverter. Not all, though; some are from individuals’ target shots.

What I really wanted to point out is that one can try other primaries by doing this. In rawproc, I coded my color profile file selection box so you could paste or type a set of primaries, dcraw-style, into it and rawproc would then create a D65 profile out of them. Handy for experimentation…