Hi Michael (& Klaus),

Summarizing (from 2 messages):
- Streaming image data to the frontend is not possible, since we want the 
backend to be able to do dust/scratch removal. Of course there must be an 
option to retrieve raw RGBI data. So: no streaming. Sane_start() will read all 
the image data from the scanner into a buffer and do the post-processing to 
arrive at a complete image. Sane_read() will just return requested parts of the 
data.
- A separate reader process is not necessary, since the whole image is 
available as soon as sane_start() finishes .
- We'll stick to the indexed format when reading data from the scanner. No 
problem, since we already have to buffer internally. 
- Memory usage is an issue. Our backend should be able to handle an image of 
about 0.5 GB (7200 dpi, 16 bit depth, 4 colors), with perhaps the same amount 
of data for processing. Some resource checks before starting the scan might be 
welcome, but I don't know how to do that yet.

I'm curious about the dust/scratch-removal. I understand the idea of finding 
appropriate thresholds to distinguish between image and artifacts, but I get 
lost in the image correction process ('dilating'). Do you have any literature 
on this process?

I'm also curious if you have contacted Emre Celebri already about using his 
algorithms.

Finally: if you are willing to go through my code to find out where your 
scanner should be treated differently, I shall implement the above, and also 
try to add the post-processing functions. I was a little too enthusiastic in 
sending working code (September 6th), because it is not obvious how to get it 
to compile (sorry, Klaus). I'll be clearer next time, which I hope is before 
you return from your upcoming internetless time.

Yours,

Jan

Reply via email to