kopia lustrzana https://gitlab.com/sane-project/website
129 wiersze
6.3 KiB
HTML
129 wiersze
6.3 KiB
HTML
<!-- received="Thu Jul 29 02:47:36 1999 PDT" -->
|
|
<!-- sent="Thu, 29 Jul 1999 12:00:29 +0200" -->
|
|
<!-- name="Andreas Rick" -->
|
|
<!-- email="rickand@gemse.fr" -->
|
|
<!-- subject="Re: SANE & exposure times" -->
|
|
<!-- id="37A0263D.607F0B81@gemse.fr" -->
|
|
<!-- inreplyto="SANE & exposure times" -->
|
|
<title>sane-devel: Re: SANE & exposure times</title>
|
|
<h1>Re: SANE & exposure times</h1>
|
|
<b>Andreas Rick</b> (<a href="mailto:rickand@gemse.fr"><i>rickand@gemse.fr</i></a>)<br>
|
|
<i>Thu, 29 Jul 1999 12:00:29 +0200</i>
|
|
<p>
|
|
<ul>
|
|
<li> <b>Messages sorted by:</b> <a href="date.html#212">[ date ]</a><a href="index.html#212">[ thread ]</a><a href="subject.html#212">[ subject ]</a><a href="author.html#212">[ author ]</a>
|
|
<!-- next="start" -->
|
|
<li> <b>Next message:</b> <a href="0213.html">Ewald R. de Wit: "Re: SANE & exposure times"</a>
|
|
<li> <b>Previous message:</b> <a href="0211.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
|
<li> <b>Maybe in reply to:</b> <a href="0208.html">Ewald R. de Wit: "SANE & exposure times"</a>
|
|
<!-- nextthread="start" -->
|
|
<li> <b>Next in thread:</b> <a href="0220.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
|
<!-- reply="end" -->
|
|
</ul>
|
|
<!-- body="start" -->
|
|
Didier Carlier wrote:<br>
|
|
<i>> </i><br>
|
|
<i>> <a href="mailto:ewald@pobox.com">ewald@pobox.com</a> said:</i><br>
|
|
<i>> > My concern is not changing the values but getting them from the</i><br>
|
|
<i>> > backend so the frontend knows how to make sense out of the RGB values.</i><br>
|
|
<i>> > I think we could use SANE_NAME_SCAN_EXPOS_TIME_R (defined in sane/</i><br>
|
|
<i>> > saneopts.h) and friends for that. That is, the frontend should check</i><br>
|
|
<i>> > these options and if they are present then it should divide the RGB</i><br>
|
|
<i>> > values by their corresponding exposure time.</i><br>
|
|
<i>> </i><br>
|
|
<i>> What is the meaning of an RGB value divided by a time ? Nothing says</i><br>
|
|
<i>> for instance that the sensitivity of the detectors is the same for all</i><br>
|
|
<i>> colors so that even for a picture that looks perfectly grey, you would get</i><br>
|
|
<i>> completely different values for the quotients.</i><br>
|
|
<i>> </i><br>
|
|
<i>> I'm just curious to understand in what application that division makes sense.</i><br>
|
|
<p>
|
|
I agree with Didier: Just dividig by the exposure values returned<br>
|
|
by the scanner will do nothing but degrade the color balance that<br>
|
|
the scanner establishes on its own, because it already has some compensation<br>
|
|
for the different light-source efficiencies+detector sensibility.<br>
|
|
<p>
|
|
<br>
|
|
Nevertheless I think the relation between exposure time and sensor<br>
|
|
result is quite interesting.<br>
|
|
If we assume that the exposure time really accurate its variation<br>
|
|
can be used to verify the linear reponse of the scanner.<br>
|
|
I did that and found the result to be quite sattisfactory for the LS-30.<br>
|
|
This makes me think of the following application:<br>
|
|
<p>
|
|
The major difference between the LS-30 and LS-2000<br>
|
|
film-scanners is the color resolution and the dynamic range<br>
|
|
of the images and the fact that the LS-2000 can do<br>
|
|
"multi scanning".<br>
|
|
<p>
|
|
I don't have the LS-2000 so I don't know whether the<br>
|
|
multiple scanning is done by moving the scanner head<br>
|
|
multiple times over the image or wether the head does<br>
|
|
only one cycle but each line is scanned multiple times.<br>
|
|
<p>
|
|
The multi scanning allows to reduce the noise captured<br>
|
|
in dark areas in the image (or bright on negatives),<br>
|
|
where detector noise is important relative to the image signal.<br>
|
|
<p>
|
|
I would like to state that in theory you can scan<br>
|
|
any image with any scanner multiple times.<br>
|
|
The limitations of the usefullness of multiple scanning<br>
|
|
is the repositioning precision of the scanner.<br>
|
|
On the LS-30 it is pretty good. I think it may be<br>
|
|
sufficient for full resolution scanning and adding of<br>
|
|
the images.<br>
|
|
<p>
|
|
While I am trying to implement this functionality<br>
|
|
into the SANE-backend I had some doubts if this feature<br>
|
|
should not rather be implemented in the frontends.<br>
|
|
They have everything in their power to do so.<br>
|
|
If I want to do it in the backend I have to store the<br>
|
|
whole image (up to 70MB on the LS-30).<br>
|
|
<p>
|
|
What do you think?<br>
|
|
<p>
|
|
The exposure related idea is: multi-exposure scanning.<br>
|
|
Instead of scanning all the images of a multi-scanning<br>
|
|
process with the same exposure level we might want to<br>
|
|
scan one image with the exposure calculated by the scanner,<br>
|
|
one with the double and one with 4-times the exposure.<br>
|
|
We then fusion the images by choosing the 3rd scan for<br>
|
|
all pixel values where the detector was not saturated during the<br>
|
|
third scan (ususally 25% of the dynamic range) the second<br>
|
|
image for the remaining pixels where the second image was not<br>
|
|
satturated and the first for the rest.<br>
|
|
Of course we have to scale the values to the same exposure<br>
|
|
level before the fusion (->divide by exposure).<br>
|
|
We may also leave out the second scan, extend the method to<br>
|
|
even more scans and or use a weighting scheme for the fusion.<br>
|
|
The advantage of this method is to add two bits of resolution<br>
|
|
(or reduce the noise by a factor of sqrt(4)=2) with only 2/3 scans.<br>
|
|
<p>
|
|
As the absolut resolution (or noise) is not so important as<br>
|
|
the SNR (Signal to Noise Ratio) and the resulting image<br>
|
|
should have an almost signal independent SNR (to be verified)<br>
|
|
we get good improvement in the subjective image quality<br>
|
|
especially in the dark areas of images with a high contrast<br>
|
|
where the quality of the LS-30 is quite poor.<br>
|
|
<p>
|
|
Any comments?.<br>
|
|
<p>
|
|
Andreas<br>
|
|
<p>
|
|
<pre>
|
|
--
|
|
Source code, list archive, and docs: <a href="http://www.mostang.com/sane/">http://www.mostang.com/sane/</a>
|
|
To unsubscribe: echo unsubscribe sane-devel | mail <a href="mailto:majordomo@mostang.com">majordomo@mostang.com</a>
|
|
</pre>
|
|
<!-- body="end" -->
|
|
<p>
|
|
<ul>
|
|
<!-- next="start" -->
|
|
<li> <b>Next message:</b> <a href="0213.html">Ewald R. de Wit: "Re: SANE & exposure times"</a>
|
|
<li> <b>Previous message:</b> <a href="0211.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
|
<li> <b>Maybe in reply to:</b> <a href="0208.html">Ewald R. de Wit: "SANE & exposure times"</a>
|
|
<!-- nextthread="start" -->
|
|
<li> <b>Next in thread:</b> <a href="0220.html">Didier Carlier: "Re: SANE & exposure times"</a>
|
|
<!-- reply="end" -->
|
|
</ul>
|