Synthesis

Functions

void image_synthesis(Context &ctx, const NufftSynthesisOptions &opt, Dataset &dataset, std::unordered_map<std::string, std::vector<std::pair<std::size_t, const float*>>> selection, ImageProp &imageProp, const std::string &imageFileName)

Compute image synthesis for a dataset and multiple images based on selection.

Parameters:
  • ctx[in] Context.

  • opt[in] Nufft options.

  • dataset[in] Dataset object.

  • selection[in] Selection of pairs of sample indices and scaled eigenvalues for each images.

  • imageProp[in] Image properties describing the output points.

  • imageFileName[in] Image file name to write output to in hdf5 format.

struct Partition
#include <image_synthesis.hpp>

Public Functions

Partition() = default
inline Partition(Partition::Grid g)
inline Partition(Partition::Auto g)
inline Partition(Partition::None g)

Public Members

std::variant<Partition::Auto, Partition::None, Partition::Grid> method = Partition::Auto()
struct Auto
#include <image_synthesis.hpp>

Automatic domain partition method setting.

struct Grid
#include <image_synthesis.hpp>

Use regular grid domain partitioning.

Public Members

std::array<std::size_t, 3> dimensions = {1, 1, 1}

Grid dimension.

struct None
#include <image_synthesis.hpp>

Disable domain partitioning.

struct NufftSynthesisOptions
#include <image_synthesis.hpp>

Public Functions

inline auto set_tolerance(float tol) -> NufftSynthesisOptions&

Set the tolerance.

Parameters:

tol[in] Tolerance.

inline auto set_sample_batch_size(std::optional<std::size_t> size) -> NufftSynthesisOptions&

Set the collection group size.

Parameters:

size[in] Collection group size.

inline auto set_local_uvw_partition(Partition p) -> NufftSynthesisOptions&

Set the partitioning method for the image domain.

Parameters:

p[in] Partition method.

inline auto set_normalize_image(bool normalize) -> NufftSynthesisOptions&

Set normalization of image.

Parameters:

normalize[in] True or false.

inline auto set_apply_scaling(bool apply) -> NufftSynthesisOptions&

Set scaling setting.

Parameters:

apply[in] True or false.

inline auto set_precision(BippPrecision prec) -> NufftSynthesisOptions&

Set floating point precision.

Parameters:

prec[in] Precision.

Public Members

BippPrecision precision = BIPP_PRECISION_SINGLE

Floating point pricision to use internally.

float tolerance = 0.001f

The tolerance used when computing the NUFFT.

Smaller value will increase accuracy but requires more operations.

std::optional<std::size_t> sampleBatchSize = std::nullopt

The maximum number of collected datasets processed together.

Larger number typically improves performance but requires more memory. Internal heuristic is used if unset.

Partition localUVWPartition = Partition{Partition::Auto()}

The partition method used in the image domain.

Partitioning decreases memory usage, but may come with a performance penalty.

bool normalizeImage = true

Normalize image by the number of collect steps.

bool apply_scaling = true

Apply scaling defined in dataset.