[sane-devel] Fujitsu ScanSnap iX500 Threshold and Gamma

Andy Bennett andyjpb at ashurst.eu.org
Sun Dec 28 00:55:59 UTC 2014


Hi,

I've got a new iX500 and I'm trying to use it under Debian Wheezy.

I've read my way through this thread:

http://lists.alioth.debian.org/pipermail/sane-devel/2014-March/032224.html

...and provisionally got the scanner working with the 1.0.24 backend!
:-) Thanks.

All seems to be working well except I have some dark lines on the page.

I've scanned a blank sheet of white paper and took the liberty of
marking the position of the feed rollers with a pen and the lines seem
to line up with them:

http://www.ashurst.eu.org/download/tmp/out1.jpg

The other side of the paper, scanned at the same time, has a different
pattern:

http://www.ashurst.eu.org/download/tmp/out2.jpg

I've tried wiping the glass on the heads but it makes no difference.

Perhaps it's not dirty: I wonder if the paper does not pass the heads at
the same distance along the width due to the squeezing of the rollers?

Here is the command I'm using to make the scan:

-----
scanimage --format=pnm --batch --mode Color --resolution 600dpi --source
"ADF Duplex" --buffermode On --page-width=210mm --page-height=297mm -x
210mm -y 297mm --bgcolor White
-----

The lines seem worse with a 600dpi scan than with a 300dpi.

After a lot of reading and thinking, I decided to try some image processing.

If I put a curve on the image in GIMP such that intensity values >= 215
are clamped to 255 the interference goes away. This also seems to
successfully reject text that bleeds through from the reverse side of
the paper.

Therefore I have tried using the --threshold and --custom-gamma options
to scanimage but they do not seem to be supported:

-----
$ scanimage --format=pnm --batch --mode Color --resolution 300dpi
--source "ADF Duplex" --page-width=210mm --page-height=297mm -x 210mm -y
297mm --bgcolor White --threshold 215
scanimage: rounded value of page-width from 210 to 210.01
scanimage: rounded value of page-height from 297 to 296.994
scanimage: attempted to set inactive option threshold
-----

-----
$ scanimage --format=pnm --batch --mode Color --resolution 300dpi
--source "ADF Duplex" --buffermode On --page-width=210mm
--page-height=297mm -x 210mm -y 297mm --bgcolor White --custom-gamma=yes
--gamma-table  [0]0-[99999]255
scanimage: rounded value of page-width from 210 to 210.01
scanimage: rounded value of page-height from 297 to 296.994
scanimage: unrecognized option '--custom-gamma=yes'
-----


Are these lines appropriate for a new scanner? i.e. is there an
underlying problem with the hardware? I'm very new to scanners and SANE
and I don't have a Windows machine available to see how the scanner
performs with the vendor software.

I've not been able to find any references to other people having these
problems with ADF style scanners in general or the iX500 and S1500 in
particular.

By my calculations (log2(215)) my suggested threshold / curve gives 7.75
bits of intensity resolution, rather than 8. Is that a reasonable colour
depth to be getting?







For reference: here's how I got things going on Debian Wheezy.

There is no 1.0.24 in backports and I didn't want to install it from
testing. I've also got hplip installed and I remembered using that to
configure my JetDirect printer: I didn't want to uninstall that and it
depends on libsane 1.0.22. Therefore I tried to get libsane 1.0.22 and
libsane 1.0.24 to coexist.

-----
sudo ldconfig -v | grep libsane
# See libsane.so.1 -> libsane.so.1.0.22 listed.

sudo apt-get install texlive-fonts-recommended
# For building the sane-backends documentation

cd sane-backends-1.0.24/
BACKENDS="fujitsu" ./configure --sysconfdir=/etc
# In the README, BACKENDS comes on the configure command line arguments,
but the configure help says to set it as an environment variable.

make
make check
make install

ldconfig -v |grep libsane
# See libsane.so.1 -> libsane.so.1.0.24 listed before libsane.so.1 ->
libsane.so.1.0.22.

sane-find-scanner
# Should see device but not model or manufacturer names

sudo sane-find-scanner
# Should see device with model and manufacturer names

scanimage -L
# Won't see device

sudo scanimage -L
# Won't see device

diff /etc/sane.d/fujitsu.conf ./backend/fujitsu.conf
sudo mv /etc/sane.d/fujitsu.conf /etc/sane.d/fujitsu.conf.1.0.22

ls -la /etc/sane.d/fujitsu.conf.1.0.22
# owned by root

ls -la backend/fujitsu.conf
# owned by me

sudo cp -a backend/fujitsu.conf /etc/sane.d/fujitsu.conf
# target will be owned by me

vim /etc/sane.d/fujitsu.conf
# add a comment to say that this is the 1.024 one

sane-find-scanner
# Should see device but not model or manufacturer names

sudo sane-find-scanner
# Should see device with model and manufacturer names

scanimage -L
# Won't see device

sudo scanimage -L
# Will see device

zcat /usr/share/doc/libsane/README.Debian.gz
# Read SETUP section about how to install the udev permissions file

ls /etc/udev/rules.d/60-libsane.rules
# Verify that this file does not yet exist.

ls -la ./tools/udev/libsane.rules
sudo cp -a ./tools/udev/libsane.rules /etc/udev/rules.d/60-libsane.rules
sudo chown root.root /etc/udev/rules.d/60-libsane.rules

dmesg
# Close the lid for 5 or 10 seconds until the USB Disconnect message
appears in dmesg.

dmesg

scanimage -L
# device `fujitsu:ScanSnap iX500:84704' is a FUJITSU ScanSnap iX500
scanner. Good to go!
-----


xsane and the other 1.0.22 frontends seem to work with this backend. I
haven't tried it with any other drivers than the one I compiled tho': if
you want to use a mix of 1.0.22 and 1.0.24 backends then you might have
to get creative. :-)

The scanimage binary used in all the examples isn't from the 1.0.22
frontends package: it's supplied by the source installation of the
1.0.24 backends and $PATH has /usr/local/bin before /usr/bin.


Thanks for your help.





Regards,
@ndy

-- 
andyjpb at ashurst.eu.org
http://www.ashurst.eu.org/
0x7EBA75FF




More information about the sane-devel mailing list