[sane-devel] Scan Correction Program! :)

Ekkehard Morgenstern ekkehard at ekkehardmorgenstern.de
Mon May 12 04:09:57 UTC 2008

It's the ma1509 backend.

I've already seen that there's a possibility to provide gamma correction
tables and such to SANE from within a backend. How does it work?

I'm not sure whether the poor results of my scanner are the result of
hardware aging, or if it's just because the backend seems to pass on the
data from the scanner chipset unchanged.

It's an LED scanner, so there must be a set of photo diodes or photo
transistors somewhere. It appears as if the scanner sends the data in
raw form, unadapted to the characteristics of the semiconductors.

Distribution of RGB values across their channels suggest that the data
should be scaled or transformed somehow. I spent a whole night this
weekend trying to figure out some formula that would solve the problem,
but I didn't find a solution.

Instead, I wrote this program to simply compute the difference between a
blank page and the color white. The program generates one line of
averaged out scaling data, which is stored in the file "white.shape".
I'm not sure whether the data can be made constant. If it were to be
included in the backend driver, it has to be fairly constant over all
scanners of that type. 

After all, the Windows driver must do the same thing somehow! ;)

On Sun, 2008-05-11 at 15:42 -0400, m. allan noah wrote:

> Ekkehard- another choice might be to do this sort of calibration
> inside the driver in sane, but that would require becoming familiar
> with the code of the sane backend which drives the scanner....

More information about the sane-devel mailing list