Skip to content

pyxu-org/pyxu_xrt

Repository files navigation

pyxu_xrt

License: MIT

PyPI

Pyxu score

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 : ℝD → ℝ is defined as


𝒫[f](n, t) = ∫f(t + nα)dα,

where n ∈ 𝕊D − 1 and t ∈ n. 𝒫[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 t are desired for each 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 o ∈ ℝD,
  • pixel dimensions are Δ ∈ ℝ+D, i.e.


f(r) = ∑{q} ⊂ ℕDαq1[0, Δ](r − q ⊙ Δ − o), αq ∈ ℝ.

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