kopia lustrzana https://gitlab.com/sane-project/backends
Added new calibration algorithm.
rodzic
e7783dc8e3
commit
3057afd6bf
|
@ -22,11 +22,11 @@ The scanners that should work with this backend are:
|
||||||
.br
|
.br
|
||||||
|
|
||||||
Primax Jewel 4800 VM356A tested
|
Primax Jewel 4800 VM356A tested
|
||||||
Primax Profi 19200 VM6586 tested
|
|
||||||
Primax Profi 9600 VM6575 tested
|
Primax Profi 9600 VM6575 tested
|
||||||
Relisys APOLLO Express 12 ? untested
|
Primax Profi 19200 VM6586 tested
|
||||||
Relisys APOLLO Express 3 VM356A tested
|
Relisys APOLLO Express 3 VM356A tested
|
||||||
Relisys APOLLO Express 6 VM6565 tested
|
Relisys APOLLO Express 6 VM6565 tested
|
||||||
|
Relisys APOLLO Express 12 ? untested
|
||||||
Relisys AVEC II S3 VM3564 tested
|
Relisys AVEC II S3 VM3564 tested
|
||||||
Relisys AVEC Super 3 VM3575 tested
|
Relisys AVEC Super 3 VM3575 tested
|
||||||
Relisys SCORPIO Pro VM6575 tested
|
Relisys SCORPIO Pro VM6575 tested
|
||||||
|
@ -144,6 +144,11 @@ If the library was compiled with debug support enabled, this
|
||||||
environment variable controls the debug level for this backend. E.g.,
|
environment variable controls the debug level for this backend. E.g.,
|
||||||
a value of 128 requests all debug output to be printed. Smaller levels
|
a value of 128 requests all debug output to be printed. Smaller levels
|
||||||
reduce verbosity.
|
reduce verbosity.
|
||||||
|
.TP
|
||||||
|
.B SANE_TECO2_CAL_ALGO
|
||||||
|
Either 0 or 1. Selects the algorithm for the calibration. A
|
||||||
|
value of 1 seems to give better scans on the VM3575. Feedback on it
|
||||||
|
is welcome.
|
||||||
|
|
||||||
|
|
||||||
.SH LIMITATIONS
|
.SH LIMITATIONS
|
||||||
|
|
|
@ -206,3 +206,34 @@ calibration
|
||||||
TECO VM3575 reads 12 lines of calibration
|
TECO VM3575 reads 12 lines of calibration
|
||||||
TECO VM656A reads 8 lines of calibration
|
TECO VM656A reads 8 lines of calibration
|
||||||
TECO VM6586 ??
|
TECO VM6586 ??
|
||||||
|
|
||||||
|
Algorithms used (text from Alex Wulms):
|
||||||
|
The old algorithm was based on the assumption that the calibration value needs
|
||||||
|
to be an offset, to go from the value obtained during input to the average
|
||||||
|
value (0x800).
|
||||||
|
|
||||||
|
E.g., if the input value is 0x800, the calibration value must be 0x800 (0x1000
|
||||||
|
- 0x800).
|
||||||
|
Likewise, if the input value is 0x700, the calibration value must be 0x900
|
||||||
|
(0x1000 - 0x700)
|
||||||
|
And if the input value is 0x600, the calibration value must be 0xA00
|
||||||
|
|
||||||
|
The new algorithm is based on the assumption that the calibration needs to be
|
||||||
|
a multiplication factor, to compensate for the too strong or too weak pixel
|
||||||
|
in the sensor. Again, we want to obtain the average value (approximately
|
||||||
|
0x800) for every pixel read during calibration.
|
||||||
|
|
||||||
|
E.g., if the input value is 0x800, the calibration value must be 0x800
|
||||||
|
(0x800*0x800 / 0x800).
|
||||||
|
Likewise, if the input value is 0x700, the calibration value must be 0x924
|
||||||
|
(0x800*0x800 / 0x700).
|
||||||
|
And if the input value is 0x600, the calibration value must 0xAAA (0x800*0x800
|
||||||
|
/ 0x600)
|
||||||
|
|
||||||
|
Though, carefull comparison with scans done under windows has shown that the
|
||||||
|
factor is slightly different from 0x800*0x800(=0x400000) but in stead it
|
||||||
|
seems to be approximately 0x40302f (which would mean that the average value
|
||||||
|
is approximately 0x803 in stead of 0x800).
|
||||||
|
|
||||||
|
Hope this is clarifies the new algorithm.
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue