These notes on constructing custom scanner colour profiles are aimed at Nikon Coolscan scanners (the Coolscan 9000ED in particular), but most of the information is relevant to any film scanner used for scanning positive (slide) film.
The Nikon Coolscan 9000ED is widely regarded as an excellent film scanner, but the accompanying Nikon Scan software does not share this reputation. The general consensus seems to be that the Nikon Scan CMS (Colour Management System) is poor, and that better results can be obtained by disabling it and applying colour management external to this software (an alternative is to replace Nikon Scan with Vuescan or SilverFast, both of which include support for constructing and using a custom profile), but while there is a significant amount of information available on various internet forums, there are numerous contradictory claims that make it difficult to extract a clear set of guidelines for how to proceed. The recommended approach, summarised below, is based on a combination of forum posting and experiments:
A custom profile (or set of profiles) can be constructed using a variety of open source of commercial software.
After scanning each slide, assign (not convert to) the custom profile. Note that Nikon Scan incorrectly tags scans made with CMS off, or in "Scanner RGB", as being in the sRGB colour space; given the spurious association of the scan with a colour profile, an image editing application may default to conversion rather than assignment unless particular care is taken when associating the device profile. Using ImageMagick (a version compiled with support for the Little CMS library is essential), the following command will assign profile device.icc to image scan.tif, writing image scanwithprofile.tif with the device profile embedded, but with identical image data to scan.tif:
convert -profile device.icc scan.tif scanwithprofile.tif
The image with embedded profile can be used in any image editing software supporting colour management, or can be converted to a different colour space as in the following example:
convert scanwithprofile.tif -profile sRGB.icc scansrgb.tif
Direct conversion to a desired colour space is also possible, as in the following example:
convert -profile device.icc scan.tif -profile sRGB.icc scansrgb.tif
Comments, suggestions, error corrections etc. are welcome.