ArgyllCMS unter Fedora 27: Scanner

Und für etwas mehr Kontrolle und Transparenz gibt es den ganzen Farbmanagement-Krams auch auf der Shell.

Für den Scanner:

[romal@localhost Bilder]$ scanin -dipin -v Epson4990.tiff /usr/share/color/argyll/ref/it8.cht /usr/share/color/targets/wolf_faust/reflective/R031123.it8
Input file ‚Epson4990.tiff‘: w=2096, h=1490, d = 3, bpp = 16
Data input file ‚/usr/share/color/targets/wolf_faust/reflective/R031123.it8‘
Data output file ‚Epson4990.ti3‘
Chart reference file ‚/usr/share/color/argyll/ref/it8.cht‘
Creating diagnostic tiff file ‚diag.tif‘
About to allocate scanrd_ object
Verbosity = 2, flags = 0x42a01
About to read input tiff file and discover groups
adivval = 1.000000
About to calculate edge lines
757 useful edges out of 2685
About to calculate rotation
Mean angle = -0.151442
Standard deviation = 4.236637
Robust mean angle = 0.309189 from 718 lines
About to calculate feature information
About to read reference feature information
Read of chart reference file succeeded
About to match features
Checking xx
Checking yy
Checking xy
Checking yx
Checking xix
Checking yiy
Checking xiy
Checking yix
Axis matches for each possible orientation:
0: xx = 0.881125, yy = 0.550471, xx.sc = 0.332124, yy.sc = 0.332264
90: xiy = 0.252421, yx = 0.585576, xiy.sc = 0.667771, yx.sc = 0.330178
180: xix = 0.716124, yiy = 0.499393, xix.sc = 0.331848, yiy.sc = 0.332580
270: xy = 0.213750, yix = 0.640050, xy.sc = 0.666162, yix.sc = 0.330724
r0 = 1.038503, r90 = 0.315292, r180 = 0.871134, r270 = 0.335012
There are 2 candidate rotations:
cc = 1.038503, irot = 0.309189, xoff = 113.656016, yoff = 84.346869, xscale = 3.010924, yscale = 3.009654
cc = 0.871134, irot = 180.309189, xoff = -1975.479437, yoff = -1321.418861, xscale = 3.013425, yscale = 3.006791
About to compute match transform for rotation 0.309189 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
About to compute match transform for rotation 180.309189 deg.
About to setup value scanrdg boxes
About to read raster values
About to compute expected value correlation
Expected value distance values are:
0, rot 0.309189: 423.551686
1, rot 180.309189: 3278.714895
Chosen rotation 0.309189 deg. as best
About to compute final match transform
Improve match
About to setup value scanrdg boxes
About to read raster values
About to write diag file
Writing output values to file ‚Epson4990.ti3‘
[romal@localhost Bilder]$

Als Kontrolle ob er das Target auch richtig erkannt hat, produziert er eine Art-Logbild:

Um jetzt aus den Messwerten ein ICC-Profil zu erzeugen, braucht es noch einen zweiten Aufruf:

[romal@localhost Bilder]$ colprof -v -A „Epson“ -M „Perfection 4009 Photo“ -D „Epson Perfection 4990 Photo“ -C „Robert M. Albrecht Argyll 1.9.2“ -qm -ax Epson4990
No of test patches = 288
Creating extrapolation black and white points:
Creating matrix…
100%
Matrix = 0.244719 0.332824 -0.036968
0.068047 0.587284 -0.077712
-0.050419 0.112960 0.376136
Creating matrix and single gamma curve…
100%
Matrix = 0.428427 0.254083 0.070758
0.226456 0.577568 0.023772
0.016416 0.098095 0.567358
Gamma = 1.592629
Creating matrix and gamma curves…
100%
Matrix = 0.473581 0.241524 0.083695
0.233936 0.577077 0.019668
0.019310 0.099646 0.593793
Gamma = 1.792855 1.516941 1.682054
Creating matrix and curves…
100%
Matrix = 0.471772 0.239077 0.086169
0.233454 0.573206 0.021537
0.019999 0.098331 0.591661
Input offset = -0.003309 0.000088 -0.001977
Output offset = -0.000000 -0.000000 -0.000000
0 gamma = 1.786949 1.515873 1.686707
1 harmonics = -0.016121 0.001039 -0.035404
Added synthetic point @ 0.000000 0.000000 0.000000, val -0.000341 -0.000380 -0.000341, weight 0.296969
Added synthetic point @ 0.012268 0.012256 0.011727, val 0.000467 0.000826 0.000407, weight 0.176298
Added synthetic point @ 1.000000 0.999007 0.955851, val 0.825657 0.859969 0.714158, weight 0.136326
Added synthetic point @ 0.000000 0.000000 0.000000, val -0.000341 -0.000380 -0.000341, weight 0.296969
Added synthetic point @ 0.012268 0.012256 0.011727, val 0.000467 0.000826 0.000407, weight 0.176298
Added synthetic point @ 1.000000 0.999007 0.955851, val 0.825657 0.859969 0.714158, weight 0.136326
Estimating white point
Picked white patch 265 with dev = 0.97808140 0.97710980 0.93489970
XYZ = 0.79480000 0.82990000 0.68770000, Lab = 93.010060 -1.057764 -0.284271
Picked black patch 288 with dev = 0.04162288 0.03439598 0.05044238
XYZ = 0.00320000 0.00340000 0.00360000, Lab = 3.071207 -0.316140 -1.501554
Approximate White point XYZ = 0.79480000 0.82990000 0.68770000, Lab = 93.010060 -1.057764 -0.284271
Creating optimised per channel curves
Initial White Point XYZ 0.794800 0.829900 0.687700, Lab 93.010060 -1.057764 -0.284271
About to optimise temporary matrix
100%
About to optimise a common ord 0 input curve and matrix
100%
About to optimise a common input curve and matrix
100%
About to optimise input curves and matrix
100%
About to optimise output curves and matrix
100%
About to optimise input curves and matrix again
100%
About to optimise input, matrix and output together
100%
About to create grid position input curves
Create final clut from scattered data
**********************************************************************************
Doing White point fine tune:
Before fine tune, rel WP = XYZ 0.944495 0.981349 0.797909, Lab 99.274296 -0.302073 0.954814
After fine tune, rel WP = XYZ 0.964177 1.000029 0.825074, Lab 100.001123 -0.009379 -0.011716
abs WP = XYZ 0.77853552 0.81442041 0.66519516, Lab 92.328037 -1.337945 0.615933
Creating fast inverse input lookups
White point XYZ = 0.77853552 0.81442041 0.66519516, Lab = 92.328037 -1.337945 0.615933
Find black point
Black point XYZ = 0.00355225 0.00408257 0.00429898, Lab = 3.687775 -1.551358 -1.758174
Done A to B table creation
Setting up B to A table lookup
Creating B to A tables
Rev cache RAM = 3198 Mbytes
Initializing nnrev arrays…
There is 1 rev cache instance with 3198 Mbytes limit
nnrev initialization done
Initializing nnrev arrays…
There are 2 rev cache instances with 1599 Mbytes limit
nnrev initialization done
100%
Done B to A table
There is 1 rev cache instance with 3198 Mbytes limit
Profile check complete, peak err = 2.282269, avg err = 0.372371
[romal@localhost Bilder]$

Wichtig ist der avg-err Wert. Wenn er in Richtung 5 oder höher wandert, ist was schief gegangen. Und schon haben wir unser ICC-Profil:

[romal@localhost Bilder]$ ls -l Epson*
-rw-rw-r–. 1 romal romal 109512 31. Okt 14:58 Epson4990.icc
-rw-rw-r–. 1 romal romal 25133 31. Okt 14:54 Epson4990.ti3
-rw-r—–. 1 romal romal 18897622 31. Okt 08:55 Epson4990.tiff