I've been using ImageJ's numerical propagation plugin written in Java, The visual results from running Angular spectrum using the same parameters/measurements differ substantially between pyDHM and ImageJ Numerical Prop. The ImageJ output appears to be qualitatively more accurate.
wavelength: 409 [nm]
distance: 1.1 [mm]
input width: 3.85 [mm]
input height: 2.76 [mm]
wavelength: 409 [nm]
distance: 1.1 [mm]
input width: 3.85 [mm]
input height: 2.76 [mm]
mm_to_m = lambda x: x/(10.0**3)
nm_to_m = lambda x: x/(10.0**9)
params = dict(wavelength = nm_to_m(409),
z = mm_to_m(1.01),
dx = mm_to_m(3.85),
dy = mm_to_m(2.76))
image = utilities.imageRead("test_data/plankton.jpg")
# filter is not applied (Nor is it applied in other Numerical prop tools)
output = angularSpectrum(image, **params)
enhanced_output = utilities.intensity(output, False)
If I did not wish to apply a visual filter or restrict the ROI and wanted numerical propagation on the full image, Are there any transforms within the sfr, or sfmr that I'm missing outside of it?