Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
LICENSE Initial commit May 3, 2015
README Update dependancies May 8, 2015
colormatch Update copyright May 5, 2015


ColorMatch allows you to create an ICC standard color profile 
based on the color transform your camera firmware uses to
create JPG files. This profile can then be applied to your
RAW files using RAW editing software.

Keep in mind that ColorMatch should be considered as highly
experimental and requires meticulous application of the 
procedures below in order to be successful.

WARNING: Keep in mind that ColorMatch comes with no warranty
whatsoever, use at your own peril.

To be able to use ColorMatch you need the following target:

 * Wolf Faust C1 DIN A4 IT8 Camera Target 

To be able to use ColorMatch you need the following software:

 * bash                 (4.3)
 * argyll               (1.6.3)
 * shared-color-targets (0.1.0)
 * exiv2                (0.23)

Camera Configuration
Properly configuring your camera is absolutely critical for
ColorMatch to succeed, please consult your camera manual
for instructions on how the achieve the settings below:

 * Disable Nikon Active D-Light
 * Disable Canon Auto Lighting Optimizer
 * Disable Canon Highlight Tone Priority
 * Disable Sony Dynamic Range Optimizer
 * Disable Olympus Shadow Adjustment Technology
 * Disable Panasonic Intelligent D-Range
 * Disable Samsung Smart Range
 * Disable Pentax D-Range
 * Disable Pentax Multi Auto White Balance
 * Disable Lens correction, if possible
 * Set camera to Adobe RGB colorspace
 * Set camera to 1/3EV exposure increments
 * Set camera to base ISO (usually 100 or 200)
 * Set camera to RAW+JPG (Full Resolution, Super Fine)
 * Lower camera applied sharpening

Shooting The Target
Shoot the IT8 target preferably in direct sunlight as close
to midday as possible. Have the target fill out most of the
frame. matrix metered camera exposure should be mostly right
(probably +1/3EV), however it's recommended to do extensive
bracketing to make sure you have a wide range of exposures
to select the right one from later on.

You may need to shoot the target at a slight angle to 
prevent glare.

It's probably best not to use exotic glass to shoot the 
target, a 50 mm prime is likely ideal, if unavailable, any
kit-lens should suffice. To prevent vignetting from affecting
the procedure, it's recommended to close down the aperture
a few stops from its maximum value. So you'll likely end up
shooting at f/8 or f/11.

Selecting The Right Exposure
Open a candidate JPG in GIMP and verify there is no dust or
glare in the image. Then open the color picker, set sample 
average, use info window and get HSV values.

When you sample the white GS0 patch, you should see a value
of about 97%, and 3% for the black GS23 patch.

Then proceed to measure the four grey outer corners of the 
chart, the value difference between the darkest and 
brightest corners should be well below 5%.

If all of the above requirements have been satisfied, crop
the chart, so only the chart remains visible, including
cropping off the text. Save the resulting image as a 8-bit
TIFF (without compression).

Processing The RAW
Open the respective RAW in your favorite RAW processing
software, and disable all possible processing. Set linear 
gamma (1.0) and set input and output profile to the same
profile, and rendering intent to absolute colorimetric if 
possible, effectively creating a color management 
pass-through. Then apply cropping, and lens distortion
correction if needed, be careful not to apply lens 
vignetting correction. Then save to a 16-bit TIFF
(again without compression).

Particularly for Darktable, make sure camera white balance 
is unchanged, disable basecurve, disable sharpen, set a
linear rec2020 for input and output color profile. Make 
sure not to override the output color profile while 

Particularly for UFRaw, make sure camera white balance is 
unchanged, restore details for negative EV: clip, clip 
highlights for positive EV: digital linear, load Argyll's 
ClayRGB1998.icm both as camera and output profile, with
an absolute colorimetric rendering intent. Set output
bit depth to 16-bit. Set gamma 1,00 and linearity 0,000.
Also make sure Embed exif data in output is enabled.

Particularly for DCRaw, you can use the following command:
# dcraw -v -w -M -H 0 -o 0 -6 -W -g 1 1 -f -m 1 -T ../_MG_1234.CR2

Running ColorMatch
The ColorMatch script takes three arguments, first the camera
processed image, second the linear RAW processed by your RAW 
converter, and optionally a style name to be included into 
the profile description.

# colormatch CAMERA.TIF _MG_1234.TIF Standard

At the end of the script, you should see a plot, which should
be a fairly smooth curve, with in most cases a notch at the
lower right side.

Note that colormatch expects all ArgyllCMS utilities to be
available in your system path, if not, you will have to adapt
the script to whatever your situation is.

Using The Profile
Particularly for Darktable, copy the resulting ICC color profile
into Darktable's input color profile directory, like so:
# mkdir -p ~/.config/darktable/color/in
# cp my.icc ~/.config/darktable/color/in
Then select the profile in the input color profile module, in
Darkroom mode. Make sure basecurve is disabled.

Particularly for UFRaw, copy the resulting ICC color profile
to a location that's convenient for you. Then load the ICC
file from UFRaw GUI as the camera profile, make sure gamma
is set to 1,00 and linearity is set to 0,000.

Particularly for DCRaw, you can use the following command:
# dcraw -v -w -H 0 -o 1 -p my.icc -W -g 1 1 -f -m 1 -T _MG_1234.CR2

Testing The Profile
There is no definitive way to test a generated profile, it may
work marvellously on one image and fail horribly on another.

Most typical problems will likely occur in the highlights and 
shadows. So testing a profile with overexposed and underexposed
images is a good way to start.

Other good test cases are portraits, images with clouds,
high-key, low-key, etc.

A lot of people on the ArgyllCMS mailing have been very helpful,
but one person in particular helped me in tricking ArgyllCMS
into producing these camera emulation profiles: Klaus Karcher.
Without his help, ColorMatch may never have existed.

ColorMatch critically hinges on tools provided free of charge
by ArgyllCMS, so if ColorMatch has been useful for you, please 
seriously consider donating to ArgyllCMS' author:

Frequently Asked Questions
Q: My camera does not support RAW+JPG
A: RAW files have a lower-quality embedded thumbnail, which you
   extract using Exiv2:
   # exiv2 -ep3 IMG_1234.CR2
   This embedded thumbnail might however be in sRGB colorspace
   (regardless of camera configuration).

Q: My camera does not support AdobeRGB
A: sRGB could work too, but you'll have to modify the script 

Q: My camera does not support 1/3EV increments
A: You really need this precision to easily get the right shot,
   presumably you could do without, but be prepared to do a 
   huge amount of trial and error. It won't be fun.

Q: Can ColorMatch work with other targets
A: In theory, yes, practically no. I've done testing with 
   several charts, where Wolf Faust's IT8 charts are both
   most suitable and most affordable. I have no interest 
   whatsoever in adapting ColorMatch for other types of charts.

Q: Why no TIFF compression
A: Depending on your version of ArgyllCMS it may or may not
   have been linked against a version of libtiff with deflate
   support. Disabling compression means you can be sure your
   TIFFs will be compatible.

Q: Can profiles be used interchangeably between RAW converters
A: Since RAW files aren't self-descriptive, decoding a RAW,
   requires RAW converters to apply arbitrary parameters to
   be able to make sense of the data. This may vary between
   different RAW converters; it may match for some camera
   models, and it might differ for others.

Q: Will there be a repository of generated profiles
A: I currently have no desire nor time to curate a repository
   of camera profiles. These resulting profiles should be
   considered a personal-use item.

Q: My distro does not have shared-color-targets
A: You merely need to download R080505.it8 manually, and
   modify the script accordingly. In this particular
   use-case it typically won't have to match the text
   on your actual target.