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.

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

  • npt – number of integration points.

  • min_count – minimum number of pixels required.

  • method – azimuthal integration method.

Returns

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

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.

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

  • npt – number of integration points.

  • min_count – minimum number of pixels required.

  • method – azimuthal integration method.

Returns

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

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.

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.

Returns

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