Re: A "slanted edge" analysis program
- From: "Lorenzo J. Lucchini" <ljlbox@xxxxxxxxxx>
- Date: Wed, 28 Sep 2005 21:24:01 +0200
Bart van der Wolf wrote:
"Lorenzo J. Lucchini" <ljlbox@xxxxxxxxxx> wrote in message news:L3l_e.674$133.670@xxxxxxxxxxxxxxxxxxxxxxxx
Bart van der Wolf wrote:
SNIP
The image code values should be linarized at this stage, so film/sensor non-linearity and gamma adjustments can't influence the calculations.
Yes, I am currently ignoring gamma, as my test images are gamma=1.0 anyway.
For real accurate results, that remains to be verified ... Testing a (transparent) step wedge may/will reveal 'interesting' features of hardware *and* of scanner driver software.
True. But test targets cost money, and I'm allergic to expenses ;-)
Well, sooner or later, perhaps I'll go buy an IT8 test target, so that I have a gray scale for measuring gamma, as well as everything else for measuring colors.
But not right now. Actually, one of the reasons why I got very interested in this slanted edge test was its astonishing inexpensiveness :-)
By the way, can the test somehow also tell something about color corrections? Intuitively, it seems to me that with the ESF and the MTF for red, green and blue one should be able to fix at least *some* color correction parameters.
If I'm not mistaken, though, this all boils down to a "Pixel=InputPixel^Gamma" instead of just "Pixel=InputPixel", so I'll > be be very easy to add.
Yes, for straight Gamma only (sRGB profiled images use a 'slope-limited' Gamma). Also beware that Gamma adjustment may mean 1/Gamma, depending on what is being adjusted where. This does assume that Gamma is the only non-linearity.
But if I'm not mistaken, Imatest does the same, so I can be content with it right now.
SFRWin on the other hand allows one to specify a look-up table.
[snip]
Just note that actual MTFs can exceed 1.0, assuming correct normalization to 1.0 at zero cycles. Edge sharpening halo can achieve that easily.
Right. I'll have to fix this, as the program currently doesn't give the zero-cycles point any special treatment, but just normalizes.
[snip]
See earlier remark, and provisions need to be made to detect multiple maxima (caused by noise/graininess).
What kind of provisions?
With noisy images, there can be multiple LSF maxima from a single ESF. One should decide which maximum to take. I dug up some old Word document with C code for the SFR calculation. It takes the average between the leftmost and rightmost maxima.
If your email address in your signature is valid, I can send you that document.
Yes, it's valid. It's usually full because of spam, but I'm keeping it clean lately... just don't put "enlargement" in the subject and I should receive it :-)
Anyway, can noise really cause such problems, besides in "extreme" situations (i.e. when the measurments would be better thrown away anyway)?
I'm thinking that even a very high spike of noise shouldn't be able to get higher than the edge constrast, considering that *many* lines are averaged together to obtain the ESF...
Perhaps *very* bad calibration striping could cause that, but then again one should probably throw away the scan in such a case.
SNIP
Even though the SourceForge description currently says little more than "calculates the MTF from a slanted edge", ultimately I'd like this program to do automatic deconvolution (or whatever is best) of images based on the edge results.
Yes, that's a good goal, although it will take more than a single slanted edge to get a two-dimensional a-symmetric PSF).
Well, I assume that a vertical+horizontal edge measurement can be accurate enough for many purposes.
By the way, I've done (but not published) some tests on horizontal edges (i.e. stepping motor resolution), and the results are a bit depressing! About 100-200 dpi lower resolution than on the CCD axis, and a frightening amount of color fringing.
What's worse, the PSF can (and does) change throughout the image, but a symmetrical PSF will already allow to improve image quality. Some hurdles will need to be taken, but the goal is exactly what I am looking for.
Well, it's a bit soon for this perhaps, but... how do I obtain the PSF from two (h+v) ESFs?
Perhaps for each point, average the two points on the ESFs that are at the same distance from the "center" of the function, and weight the average based on the angle between the points and the two (h+v) axes?
But anyway...
SNIP
My main resource has been http://www.isprs.org/istanbul2004/comm1/papers/2.pdf
where I took the evil alternative to the "4x bins" that I'm currently using, with all the regression nighmares it brings ;-) But it was an interesting document, anyway.
Yes, we're not the only ones still looking for the holy grail, it seems.
I'm working on a method that will produce a PSF, based on the ESF derived from a slanted edge. That PSF can be used in various deconvolution methods, and it can be used to create a High-pass filter kernel. Could be useful to incorporate in the final program.
.... of course it can be useful. No need for me to invent the square wheel when you've already worked on an octagonal one :-)
by LjL ljlbox@xxxxxxxxxx .
- References:
- A "slanted edge" analysis program
- From: Lorenzo J. Lucchini
- Re: A "slanted edge" analysis program
- From: Bart van der Wolf
- Re: A "slanted edge" analysis program
- From: Lorenzo J. Lucchini
- Re: A "slanted edge" analysis program
- From: Bart van der Wolf
- A "slanted edge" analysis program
- Prev by Date: Re: A "slanted edge" analysis program
- Next by Date: 5400 II / exposure control
- Previous by thread: Re: A "slanted edge" analysis program
- Next by thread: OmniPage
- Index(es):