[sane-devel] Parameter Default Values
olaf.meeuwissen at avasys.jp
Wed Apr 11 09:10:16 UTC 2007
Kåre Särs <kare.sars at kolumbus.fi> writes:
>> Hmm, odd. Can you provide more info? Debug output, for example.
>> > Should I be able to assume that the default values are sane, or do I have
>> > to initialize the values myself?
>> The default is the identity matrix which looks sane to me.
I should have added that the epkowa backend also contains an ever
growing list of model dependent matrices in epson_scan_hard. Each
entry may specify up to four matrices, one for reflective originals
(paper, etc), colour negative, B/W negatives and colour dia positives.
IIRC, the B/W negative matrices are always the identity matrix.
> The interesting parameters are the opt(24) -> opt(32) lines.
> I have not written those values. Where do the values come from and what should
> they be? if I set them (cct1-9) to "1, 0, 0, 0, 1, 0, 0, 0, 1" I get an OK
You originally wrote:
> The problem I have is that the default values for the color correction
> parameters ('cct-1' -> 'cct-9') give me a yellow page (original is white)
> when I write back the original value to one of the parameters. If I don't
> touch any of the cct parameters I get a white page.
I assume you have checked that when you "write back the original
value" that that's indeed what gets set, right?
There might be endian issues and SANE_FIX/SANE_UNFIX confusion.
Another possibility is that your document covered some small area(s)
(outside of the regular flatbed area) used to calibrate the device.
Sorry, but I don't remember if the RX500/RX510 has these.
Finally, you're positive your application doesn't manipulate the image
data in any way, right? Just want to make sure ;-)
> BTW today the image is quite fine even tho the paramete values are
> quite 'magic' :)
Your debugging output quite nicely matches, within floating point
precision, the entries for the RX500/RX510.
> I also noticed that changing the film type when scanning with the transparency
> unit changes these (cct) values.
See my first comment above as to why.
> This is the debug info from my application:
> - The "setValue" lines is when I want to set a value.
> - The "write data" lines is when data is actually written to the backend (only
> 4 first bytes are shown).
> - The opt(x) line shows data read from the backend.
None of your setValue() calls seem to try to set one of the cct option
> opt( 2):' mode', Combo = 'Binary'
> opt( 5):' dropout', Combo = 'None'
> opt( 8):'gamma-correctio', Combo = 'User defined (Gamma=1.8)'
> opt(10):' resolution', Combo = '300 DPI'
> opt(11):' threshold', Slider V = 128
> opt(14):' speed', checked = 0
> opt(15):'auto-area-segme', checked = 0
> opt(16):'short-resolutio', checked = 0
> opt(18):'red-gamma-table', Unhandeled
> opt(19):'green-gamma-tab', Unhandeled
> opt(20):'blue-gamma-tabl', Unhandeled
> opt(21):'wait-for-button', checked = 0
> opt(22):' monitor-button', checked = 0
> opt(34):' preview', checked = 0
> opt(35):' preview-speed', checked = 0
> opt(37):' tl-x', Slider F V = 0.000000
> opt(38):' tl-y', Slider F V = 0.000000
> opt(39):' br-x', Slider F V = 215.899994
> opt(40):' br-y', Slider F V = 297.179993
> opt(41):' quick-format', Combo = 'Max'
> opt(43):' source', Combo = 'Flatbed'
> setValue(QString): 'mode' ->'Color'
> write data=0x436f6c6f opt_number= 2 status=0, res=6data=0x436f6c6f
> setValue(float): 'resolution' value: 100.000000
> write data=0x64000000 opt_number=10 status=0, res=6data=0x64000000
> setValue(float): 'depth' value: 8.000000
> write data=0x08000000 opt_number= 3 status=0, res=6data=0x08000000
> setValue(float): 'resolution' value: 300.000000
> write data=0x58020000 opt_number=10 status=0, res=7data=0x2c010000
Hope this helps,
Olaf Meeuwissen FLOSS Engineer -- EPSON AVASYS Corporation
FSF Associate Member #1962 sign up at http://member.fsf.org/
GnuPG key: 6BE37D90/AB6B 0D1F 99E7 1BF5 EB97 976A 16C7 F27D 6BE3 7D90
Penguin's lib! -- I hack, therefore I am -- LPIC-2
More information about the sane-devel