Open mxmlnkn opened 8 years ago
Maybe try this self-made image using a cheap laser pointer and - to my calculations - a 40µm thick hair :). The hair results in the long stroke. The circular pattern seems because of a circular opening of 2mm diameter inside the laser pointer.
(Note that the setup changed between the two pictures. The hair and the streak are perpendicular to each other, not parallel like suggested here)
Required issues to solve for this are:
This is the picture with step 3., 4., 6., 7., 8. and partially 2. done with GIMP:
Just for fun a 3D map:
Well, one relatively minor problem is bit depth. All tests up to date were done with artificially created diffraction patterns using 32-bit float, but they also work with 16-bit integers. But even 16-bit images aren't even supported by any Gimp release yet.
Reconstruction from 32-bit float working precision, which may not even be comparable to 128-bit integer precision because of the support for exponents ./miniExample oI_1200x1000.png O
(in the working commit the O means that the input file is the object, not the diffraction pattern, the pattern will be created internally using float):
Note that blue means values smaller than 0. They will be very close to zero though, because that's what HIO wants to achieve.
Reconstruction from 16-bit integer (saved as PNG)
./miniExample oI_1200x1000.png-diffraction.png
:
Reconstruction from 8-bit integer (resaved as PNG through GIMP 2.8.x)
./miniExample oI_1200x1000.png-diffraction-8-bit.png
My camera only supports 8-bit. Even cameras supporting raw-format are said to actually only measure 12-bit of data instead of 16-bit supported by raw itself. That's why in this paper they use high dynamic range imaging, meaning they take images at n different exposure settings and combine them somehow, to get better precision, where n isn't given in the paper.
If already lost precision is a problem, then I don't really wanna know, how much of an irrecoverable error the laser freckles induced by the indirect imaging method and the reflecting surface roughness introduce ...
Wonderful work!
FYI: Melanie Rödel from FWKH has some excellent SAXS data. Ask Thomas Kluge.
@BeyondEspresso have you seen this?
Currently all tests begin their work from the original object to reconstruct and then use the function diffractionPattern to create, well, the diffraction pattern :). Normally the input is a diffraction pattern. We should test if it works for the examples we received.
A problem which occurs here is the anticipated layout of the diffraction pattern. See Issue #34