Skip to content

pyxu-org/pyxu_xrt

Repository files navigation

pyxu_xrt

License: MIT PyPI

Pyxu X-Ray Transform Operators

pyxu_xrt provides Pyxu operators to compute samples of the X-Ray Transform in 2D and 3D.

The X-Ray Transform (XRT) of a function f: \mathbb{R}^{D} \to \mathbb{R} is defined as

\mathcal{P}[f](\mathbf{n}, \mathbf{t})
=
\int_{\mathbb{R}} f(\mathbf{t} + \mathbf{n} \alpha) d\alpha,

where \mathbf{n}\in \mathbb{S}^{D-1} and \mathbf{t} \in \mathbf{n}^{\perp}. \mathcal{P}[f] hence denotes the set of line integrals of f.

Two class of algorithms exist to evaluate the XRT:

  • Fourier methods leverage the Fourier Slice Theorem (FST) to efficiently evaluate the XRT when multiple values of \mathbf{t} are desired for each \mathbf{n}.
  • Ray methods compute estimates of the XRT via quadrature rules by assuming f is piecewise constant on short intervals.

The operators in pyxu_xrt allow one to efficiently evaluate samples of the XRT assuming f is a pixelized image/volume where:

  • the lower-left element of f is located at \mathbf{o} \in \mathbb{R}^{D},
  • pixel dimensions are \mathbf{\Delta} \in \mathbb{R}_{+}^{D}, i.e.
f(\mathbf{r}) = \sum_{\{\mathbf{q}\} \subset \mathbb{N}^{D}}
                \alpha_{\mathbf{q}}
                1_{[\mathbf{0}, \mathbf{\Delta}]}(\mathbf{r} - \mathbf{q} \odot \mathbf{\Delta} - \mathbf{o}),
\quad
\alpha_{\mathbf{q}} \in \mathbb{R}.

In the 2D case, the parametrization is best explained by the figure below:

2D XRay Geometry

Installation

You can install pyxu_xrt via pip:

pip install pyxu_xrt

The host system must have CUDA 11.x or 12.x installed to use the GPU. Similarly, using drjit-backed operators on the CPU requires LLVM. If problems arise, we provide Docker receipes to easily create Pyxu developer environments.

License

Distributed under the terms of the MIT license, pyxu_xrt is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

About

Pyxu X-Ray Transform Operators (2D & 3D)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages