:chart_with_upwards_trend: Implementation of eight evaluation metrics to access the similarity between two images. The eight metrics are as follows: RMSE, PSNR, SSIM, ISSM, FSIM, SRE, SAM, and UIQ.
This will make the installation footprint of the package smaller by default.
pyFFTW not strictly required; it's just a faster FFT backend (used by Phasepack, hence by the FSIM metric).
In addition, since FFTW is licensed under the GPL, a strict dependency on pyFFTW (a GPL wrapper) would also make any application using it require GPL (or purchasing a license for FFTW). See https://github.com/pyFFTW/pyFFTW/issues/229 for discussion. Making it a soft dependency allows this library to remain neatly MIT.
rasterio is only needed for reading TIFFs in an... alternate way, it seems? I guess it has to do with some multi-channel TIFFs? Either way, it's not required for using the package as a library (which I'm doing, for instance).
This also expands the GHA workflow to:
test all three out of four of these configurations (no extras, speedups, speedups + rasterio).
This will make the installation footprint of the package smaller by default.
This also expands the GHA workflow to:
allthree out of four of these configurations (no extras, speedups, speedups + rasterio).