Azimuthal Integration

template<typename T = double>
class foam::AzimuthalIntegrator

Perform 1D azimuthal integration of image data.

Public Functions

template<typename E, EnableIf<std::decay_t<E>, IsImage> = false>
auto integrate1d(E &&src, size_t npt, size_t min_count = 1, AzimuthalIntegrationMethod method = AzimuthalIntegrationMethod::HISTOGRAM)

Calculate the 1D azimuthal integration of an image.

Return

(q, s): (momentum transfer, scattering)

Parameters
  • src: source image. Shape = (y, x)

  • npt: number of integration points.

  • min_count: minimum number of pixels required.

  • method: azimuthal integration method.

template<typename E, EnableIf<std::decay_t<E>, IsImageArray> = false>
auto integrate1d(E &&src, size_t npt, size_t min_count = 1, AzimuthalIntegrationMethod method = AzimuthalIntegrationMethod::HISTOGRAM)

Calculate the 1D azimuthal integrations of an array of images.

Return

(q, s): (momentum transfer, scattering)

Parameters
  • src: source image. Shape = (indices, y, x)

  • npt: number of integration points.

  • min_count: minimum number of pixels required.

  • method: azimuthal integration method.

template<typename T = double>
class foam::ConcentricRingsFinder

Detect the center of concentric rings in an image.

Public Functions

template<typename E, EnableIf<std::decay_t<E>, IsImage> = false>
std::array<T, 2> search(E &&src, T cx0, T cy0, size_t min_count = 1) const

Search for the center of concentric rings in an image.

Return

: the optimized (cx, cy) position in pixels.

Parameters
  • src: source image.

  • cx0: starting x position, in pixels.

  • cy0: starting y position, in pixels.

  • min_count: minimum number of pixels required for each grid.