Usage
Installation
This package can be installed from PyPI using pip:
$ pip install flfm
To work with the development version, clone the repository and install it in editable mode:
$ git clone https://github.com/ssec-jhu/flfm.git
$ cd flfm
$ pip install -e .[dev]
For GPU acceleration, you can reinstall PyTorch or JAX with the appropriate options. For example:
# For PyTorch with CUDA
$ pip install --force -r requirements/pytorch.txt --index-url https://download.pytorch.org/whl/cu126
# For JAX with CUDA
$ pip install --force jax["cuda12"]
Quick Start
Here is a quick example of how to use flfm in a Python script:
import flfm.util
from flfm.backend import reload_backend
# To dynamically change the backend the following code snippet can be used.
reload_backend("jax") # or "torch"
import flfm.io
import flfm.restoration
# Read in images.
image = flfm.io.open(flfm.util.find_package_location() / "tests" / "data" / "yale" / "light_field_image.tif")
psf = flfm.io.open(flfm.util.find_package_location() / "tests" / "data" / "yale" / "measured_psf.tif")
# Normalize PSF.
psf_norm = psf / flfm.restoration.sum(psf)
# Compute reconstruction.
reconstruction = flfm.restoration.reconstruct(image, psf_norm)
# Clip image to view only the central lens perspective.
cropped_reconstruction = flfm.util.crop_and_apply_circle_mask(reconstruction, center=(1000, 980), radius=230)
# Save cropped reconstruction to file.
flfm.io.save("reconstructed_image.tif", cropped_reconstruction)
Command-Line Interface
flfm provides a command-line interface for running reconstructions. Here is an example:
$ flfm.cli main path/to/image.tif path/to/psf.tif output_image.tiff --normalize_psf=True --lens_radius=230 --lens_center="(1000,980)" --backend=torch
GUI
flfm also includes a web-based user interface for interactive reconstructions. To use it, first install the application dependencies:
$ pip install -r requirements/app.txt
Then, start the application:
$ python flfm/cli.py app --host=127.0.0.1 --port=8080
The application will be available at http://127.0.0.1:8080.
Note
See GUI User Manual for further details.
ImageJ Plugin
A plugin for ImageJ is available from ssec-jhu/flfm-ij-plugin.