User Tools

Site Tools


Photo scan with GNU/Linux and Canon CanoScan 9000F Mark II

See the page Canon CanoScan 9000F Mark II.

Considering the scanner capabilities (A4 scan surface, 9600 dpi, 48 bit), you should consider to have a proper software suite to hanle all the workflow. Debian 10 ships Gimp 2.10, which is capable of handling TIF images with 16 bit per color channel. Also you need a 64 bit system to handle very huge files, 8 Gb of RAM is the bare minimum you should consider. The Imagemagick 6.9 suite can handle color profiles and is capable of 48 bit.

Using scanimage

With the command below, you will get a full-page scan ad 1200 dpi and 48 bit color (16 bit per color channel). The RGB values received from the sensor are stored as RAW values inside the TIFF image, without any specific interpretation of color space. By adding the --icc-profile to the scanimage invocation, we are just asking to embed the color profile into the image, wihout altering the pixel data values. That color profile will be eventually used by the software (e.g. GIMP) to correctly interpretate the image colors.

FILENAME="$(date +%Y-%m-%d_%H%M%S)"
scanimage --device-name "pixma:04A9190D" \
    --source 'Flatbed' \
    --resolution "$RESOLUTION" \
    --format "$FORMAT" \
    --mode '48 bits color' \
    --icc-profile "$SCANNER_PROFILE" \

When you will open the image into GIMP, you will asked if you want to convert the pixel values from the custom Canon color space, to the standard sRGB color space. Keeping the image into its original format (16 bit and original color space) is the best option if you want to keep all the numerical data for future image manipulation. Converting to another color space (sRGB is the one suggested by GIMP) will speed-up the handling of the image, but it is an lossy one-way operation due numerical approximation errors and due differences in color space extensions.

The GIMP is rather good in handling various image formats with custom color profiles, but beware that not all the viewers are equally capable. E.g. the Geeqie 1.4 image viewer does not apply custom ICC profiles to JPEG images, so it will display images as RAW data (bad colors). Images for the web generally do not embed a custom color profile, they are expected to be into the sRGB color space, compressed as JPEG 24 bit (8 bit per channel).

The Canon 9000F ICC profile

An ICC Profile specifies a set of rules to transform the graphics data (the color values of each pixel) from the source (the scanner in our case) to a target (e.g. the scren). The mappings may be specified using tables, to which interpolation is applied, or through a series of parameters for function transformations.

A color profile for a scanner can be build using a color chart and a calibration software. A very poular color chart is the ColorChecker (known also as the Macbeth ColorChecker, now X-Rite), of which there are also many imitations. In the GNU/Linux world you can use the darktable-chart tool provided by the darktable package.

An ICC profile is generally shipped as a file with the ICC or ICM extension (which are actually the same file format).

For the Canon CanoScan 9000F Mark II there is, available on the net, a color profile made by an unknown author, here you can find a copy: canon_9000f_mark_ii_icc.tgz. Originally I found the file on

Imagemagick tools

doc/appunti/hardware/canoscan_9000f_mark_ii_positive_scan.txt · Last modified: 2020/01/02 17:40 by niccolo