Libs/Image/ImageRegistration.h
Namespaces
| Name |
|---|
| shapeworks User usage reporting (telemetry) |
Classes
| Name | |
|---|---|
| class | shapeworks::ImageRegistration |
Source code
#pragma once
#include <itkCompositeTransform.h>
#include <memory>
#include <vector>
#include "Image.h"
#include "Shapeworks.h"
namespace shapeworks {
class ImageRegistration {
public:
enum class TransformType {
Rigid,
Affine,
SyN
};
using CompositeTransformType = itk::CompositeTransform<double, 3>;
ImageRegistration();
~ImageRegistration();
void set_transform_type(TransformType type);
void set_gradient_step(double step);
void set_update_field_variance(double variance);
void set_total_field_variance(double variance);
void set_iterations(const std::vector<unsigned int>& iterations);
void set_shrink_factors(const std::vector<unsigned int>& shrink_factors);
void set_smoothing_sigmas(const std::vector<double>& sigmas);
void set_linear_iterations(const std::vector<unsigned int>& iterations);
void set_linear_shrink_factors(const std::vector<unsigned int>& shrink_factors);
void set_linear_smoothing_sigmas(const std::vector<double>& sigmas);
void set_correlation_radius(unsigned int radius);
void run(const Image& fixed, const Image& moving);
std::vector<Point3> transform_points(const std::vector<Point3>& points) const;
Image warped_moving() const;
CompositeTransformType::Pointer get_transform() const;
void save_transform(const std::string& filename) const;
bool load_transform(const std::string& filename);
static Image make_registration_image(const Image& dt, double band = 5.0);
private:
class Impl;
std::unique_ptr<Impl> impl_;
};
} // namespace shapeworks
Updated on 2026-08-09 at 22:28:04 +0000