[sane-devel] Negative scanning with xsane: letīs create good
medium definitions - your help is needed
Sun, 09 Dec 2001 13:15:12 +0100
XSane supports a source medium gamma correction since version 0.79.
There are medium definitions for Agfa, Fuji, Kodak and
Konica negatives included. The definitions are created very simple
and I think we can get much better results when we improve these
For this I need some help from people who have the chance to
scans some negatives.
At first let me explain how the medium correction is done:
For each medium there are 13 values that describe how
xsane has to do the correction:
9 values for color mode:
- 3 values = shadow red, shadow green, shadow blue: , range = 0...100
- 3 values = highlight red, highlight green, highlight blue, range = 0...100
- 3 values = gamma red, gamma green, gamma blue typical range = 0.1 .. 2.0
3 values for grayscale mode: (this definition is experimental)
sahdow, highlight, gamma
1 value that defines if the medium is a negative (1) or positive (0)
These values are stored in ~/.sane/xsane/xsane.rc
The shadow, highlight and gamma values are stored as fixpoint
value, you have to multiply the real value with 65536,
so e.g. a highlight value of 30 results in 1966080
The predefined definitions all use a gamma value of 1 (65536) which
means that there is done no non linear correaction.
How can you create a good/improved definition?:
- at first you should set up correct values for contrast and brightness
of the monitor and the preview gamma value (display options) of xsane.
Here is a description how you can get at least usable settings
when you do not have a measurement system to calibrate your display:
There is a testimage in the preview window when you open the setup dialog
of xsane: The top left black and the top right white areas contain the
numbers 1 2 3. The 1 has the lowest contrast to its background. The
contrast increases for 2 and 3. At frist correct the contrast and
brightness of your monitor so that you can see at least both "3"s, better
is when you can see both "2"s or both "1"s. When this is done do not touch
the contrast and brightness setting of the monitor any more.
In the left middle area in the preview window there is a gray box, this
box consists of a mix of back and white points. This way a medium gray is
produced (this only does work when you do not use higher display resolutions than
your monitor can display, you need at least one monitor pixel for each
pixel you want to display). Now open the Display Notebook of the Setup Dialog
of xsane and change the preview gamma so that the gray box (left) has the same
intensity like the gray box in the right.
Set red, green and blue value of preview gamma to 1.0.
This setting only keeps valid when the environment light in the room does not change!
- set all backend/scanner settings like gamma, contrast, brightness etc
to default values.
- You should have some slides of the same film type.
- Start with a slide with a high contrast
- start with "Standard Negative" and do a color preview scan:
- selection area should be the image part of the slide, make
sure that you do not select any parts that do not contain
- with scanner internal custom gamma table enabled and
- with maximum bit depth if you can change the bit depth
- set xsane brightness, contrast and gamma values to default
(may be it is good to disable automatic gamma correction in
- take a look at the histogram window, disable all colors but one
so you are able to verifiy each value on its own:
our target is to find a medium definition that produces images
that use the full color range (minimum and maximum values in
the histogram are used) but we do not cut any intensity values.
- change the shadow and highlight values for "Standard negative"
in xsane.rc. When the histogram curve does not reach to the left
end of the diagram you have to increase the relevant shadow value.
When the histogram does not reach the right end of the diagramm
then you have to decrease the relevant hightlight value.
- repeat this with different slides. Only reduce shadow values and
increase highlight values in this loop (otherwise you cut intensities
of the slides you already have tested).
This way you find out the shadow and highlight values that create
images with full color range. But this does not mean that the produced
images look correct.
In the next step you should change the gamma values to get an image
with correct colors.
It also is allowed to do *little* changes on the shadow and highlight values
to get correct colors.
This also should be done with different slides (all of the same filmtype!!).
When you think you found good values then please send:
- the values you found out
- the exact name of the film
- the exact name of your scanner (Vendor, Model, Firmware)
(please send output of "cat /proc/scsi/scsi")
- the exact settings of backend options that may change
color, brightness, contrast, gamma etc.
I hope we can create a large list of negative types this way.
Thanks for your help.