9 #ifndef CMZN_FIELDIMAGEPROCESSING_HPP__
10 #define CMZN_FIELDIMAGEPROCESSING_HPP__
12 #include "zinc/field.hpp"
13 #include "zinc/fieldimageprocessing.h"
14 #include "zinc/fieldmodule.hpp"
20 class FieldImagefilterBinaryDilate :
public Field
34 explicit FieldImagefilterBinaryDilate(cmzn_field_id field_id) : Field(field_id)
37 friend FieldImagefilterBinaryDilate
39 int radius,
double dilate_value);
43 FieldImagefilterBinaryDilate() : Field(0)
47 class FieldImagefilterBinaryErode :
public Field
61 explicit FieldImagefilterBinaryErode(cmzn_field_id field_id) : Field(field_id)
64 friend FieldImagefilterBinaryErode
66 int radius,
double erode_value);
70 FieldImagefilterBinaryErode() : Field(0)
89 Field(reinterpret_cast<cmzn_field_id>(field_imagefilter_binary_threshold_id))
99 return cmzn_field_imagefilter_binary_threshold_get_lower_threshold(
100 reinterpret_cast<cmzn_field_imagefilter_binary_threshold_id>(
id));
111 return cmzn_field_imagefilter_binary_threshold_set_lower_threshold(
112 reinterpret_cast<cmzn_field_imagefilter_binary_threshold_id>(
id),
123 return cmzn_field_imagefilter_binary_threshold_get_upper_threshold(
124 reinterpret_cast<cmzn_field_imagefilter_binary_threshold_id>(
id));
135 return cmzn_field_imagefilter_binary_threshold_set_upper_threshold(
136 reinterpret_cast<cmzn_field_imagefilter_binary_threshold_id>(
id),
141 class FieldImagefilterCannyEdgeDetection :
public Field
153 explicit FieldImagefilterCannyEdgeDetection(cmzn_field_id field_id) : Field(field_id)
156 friend FieldImagefilterCannyEdgeDetection
158 double variance,
double maximumError,
double upperThreshold,
double lowerThreshold);
162 FieldImagefilterCannyEdgeDetection() : Field(0)
166 class FieldImagefilterConnectedThreshold :
public Field
179 explicit FieldImagefilterConnectedThreshold(cmzn_field_id field_id) : Field(field_id)
182 friend FieldImagefilterConnectedThreshold
184 double lowerThreshold,
double upperThreshold,
double replaceValue,
185 int dimension,
int seedPointsCount,
const double *seedPoints);
189 FieldImagefilterConnectedThreshold() : Field(0)
193 class FieldImagefilterCurvatureAnisotropicDiffusion :
public Field
207 explicit FieldImagefilterCurvatureAnisotropicDiffusion(cmzn_field_id field_id) : Field(field_id)
210 friend FieldImagefilterCurvatureAnisotropicDiffusion
212 double timeStep,
double conductance,
int numIterations);
216 FieldImagefilterCurvatureAnisotropicDiffusion() : Field(0)
235 Field(reinterpret_cast<cmzn_field_id>(field_imagefilter_discrete_gaussian_id))
246 return cmzn_field_imagefilter_discrete_gaussian_get_variance(
247 reinterpret_cast<cmzn_field_imagefilter_discrete_gaussian_id>(
id));
262 return cmzn_field_imagefilter_discrete_gaussian_set_variance(
263 reinterpret_cast<cmzn_field_imagefilter_discrete_gaussian_id>(
id),
275 return cmzn_field_imagefilter_discrete_gaussian_get_max_kernel_width(
276 reinterpret_cast<cmzn_field_imagefilter_discrete_gaussian_id>(
id));
290 return cmzn_field_imagefilter_discrete_gaussian_set_max_kernel_width(
291 reinterpret_cast<cmzn_field_imagefilter_discrete_gaussian_id>(
id),
311 Field(reinterpret_cast<cmzn_field_id>(field_imagefilter_histogram_id))
326 return cmzn_field_imagefilter_histogram_get_compute_minimum_values(
327 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
328 valuesCount, valuesOut);
345 return cmzn_field_imagefilter_histogram_set_compute_minimum_values(
346 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
347 valuesCount, valuesIn);
362 return cmzn_field_imagefilter_histogram_get_compute_maximum_values(
363 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
364 valuesCount, valuesOut);
381 return cmzn_field_imagefilter_histogram_set_compute_maximum_values(
382 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
383 valuesCount, valuesIn);
399 return cmzn_field_imagefilter_histogram_get_number_of_bins(
400 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
401 valuesCount, valuesOut);
421 return cmzn_field_imagefilter_histogram_set_number_of_bins(
422 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
423 valuesCount, valuesIn);
436 return cmzn_field_imagefilter_histogram_get_marginal_scale(
437 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id));
451 return cmzn_field_imagefilter_histogram_set_marginal_scale(
452 reinterpret_cast<cmzn_field_imagefilter_histogram_id>(
id),
457 class FieldImagefilterGradientMagnitudeRecursiveGaussian :
public Field
471 explicit FieldImagefilterGradientMagnitudeRecursiveGaussian(cmzn_field_id field_id) : Field(field_id)
474 friend FieldImagefilterGradientMagnitudeRecursiveGaussian
480 FieldImagefilterGradientMagnitudeRecursiveGaussian() : Field(0)
484 class FieldImagefilterRescaleIntensity :
public Field
497 explicit FieldImagefilterRescaleIntensity(cmzn_field_id field_id) : Field(field_id)
500 friend FieldImagefilterRescaleIntensity
502 double outputMin,
double outputMax);
506 FieldImagefilterRescaleIntensity() : Field(0)
511 class FieldImagefilterMean :
public Field
523 explicit FieldImagefilterMean(cmzn_field_id field_id) : Field(field_id)
526 friend FieldImagefilterMean
528 int radiusSizesCount,
const int *radiusSizesIn);
532 FieldImagefilterMean() : Field(0)
536 class FieldImagefilterSigmoid :
public Field
549 explicit FieldImagefilterSigmoid(cmzn_field_id field_id) : Field(field_id)
552 friend FieldImagefilterSigmoid
554 double min,
double max,
double alpha,
double beta);
558 FieldImagefilterSigmoid() : Field(0)
578 Field(reinterpret_cast<cmzn_field_id>(field_imagefilter_threshold_id))
605 return static_cast<Condition>(cmzn_field_imagefilter_threshold_get_condition(
606 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id)));
619 return cmzn_field_imagefilter_threshold_set_condition(
620 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id),
621 static_cast<cmzn_field_imagefilter_threshold_condition>(condition));
631 return cmzn_field_imagefilter_threshold_get_outside_value(
632 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
643 return cmzn_field_imagefilter_threshold_set_outside_value(
644 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), outsideValue);
654 return cmzn_field_imagefilter_threshold_get_lower_threshold(
655 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
668 return cmzn_field_imagefilter_threshold_set_lower_threshold(
669 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), lowerValue);
679 return cmzn_field_imagefilter_threshold_get_upper_threshold(
680 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
693 return cmzn_field_imagefilter_threshold_set_upper_threshold(
694 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), upperValue);
699 inline FieldImagefilterBinaryDilate
701 int radius,
double dilate_value)
704 cmzn_fieldmodule_create_field_imagefilter_binary_dilate(
id, sourceField.
getId(),
705 radius, dilate_value));
710 int radius,
double erode_value)
713 cmzn_fieldmodule_create_field_imagefilter_binary_erode(
id, sourceField.
getId(),
714 radius, erode_value));
721 cmzn_fieldmodule_create_field_imagefilter_binary_threshold(
id, sourceField.
getId())));
731 double variance,
double maximumError,
double upperThreshold,
double lowerThreshold)
734 cmzn_fieldmodule_create_field_imagefilter_canny_edge_detection(
735 id, sourceField.
getId(),
736 variance, maximumError, upperThreshold, lowerThreshold));
741 double lowerThreshold,
double upperThreshold,
double replaceValue,
742 int dimension,
int seedPointsCount,
const double *seedPoints)
745 cmzn_fieldmodule_create_field_imagefilter_connected_threshold(
id, sourceField.
getId(),
746 lowerThreshold, upperThreshold, replaceValue, seedPointsCount, dimension, seedPoints));
751 double timeStep,
double conductance,
int numIterations)
754 cmzn_fieldmodule_create_field_imagefilter_curvature_anisotropic_diffusion(
id, sourceField.
getId(),
755 timeStep, conductance, numIterations));
762 cmzn_fieldmodule_create_field_imagefilter_discrete_gaussian(
id, sourceField.
getId())));
775 cmzn_fieldmodule_create_field_imagefilter_gradient_magnitude_recursive_gaussian(
id,
776 sourceField.
getId(), sigma));
783 cmzn_fieldmodule_create_field_imagefilter_histogram(
id, sourceField.
getId())));
793 double outputMin,
double outputMax)
796 cmzn_fieldmodule_create_field_imagefilter_rescale_intensity(
id,
797 sourceField.
getId(), outputMin, outputMax));
801 int radiusSizesCount,
const int *radiusSizesIn)
804 id, sourceField.
getId(), radiusSizesCount, radiusSizesIn));
809 double min,
double max,
double alpha,
double beta)
812 cmzn_fieldmodule_create_field_imagefilter_sigmoid(
id,
813 sourceField.
getId(), min, max, alpha, beta));
820 cmzn_fieldmodule_create_field_imagefilter_threshold(
821 id, sourceField.
getId())));
A field performing ITK binary dilate image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:30
int getMaxKernelWidth()
Definition: fieldimageprocessing.hpp:273
FieldImagefilterCannyEdgeDetection createFieldImagefilterCannyEdgeDetection(const Field &sourceField, double variance, double maximumError, double upperThreshold, double lowerThreshold)
Definition: fieldimageprocessing.hpp:730
FieldImagefilterMean createFieldImagefilterMean(const Field &sourceField, int radiusSizesCount, const int *radiusSizesIn)
Definition: fieldimageprocessing.hpp:800
FieldImagefilterDiscreteGaussian castImagefilterDiscreteGaussian()
Definition: fieldimageprocessing.hpp:765
int setOutsideValue(double outsideValue)
Definition: fieldimageprocessing.hpp:641
FieldImagefilterDiscreteGaussian createFieldImagefilterDiscreteGaussian(const Field &sourceField)
Definition: fieldimageprocessing.hpp:759
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:49
Definition: fieldimageprocessing.hpp:589
FieldImagefilterBinaryDilate createFieldImagefilterBinaryDilate(const Field &sourceField, int radius, double dilate_value)
Definition: fieldimageprocessing.hpp:700
int setComputeMaximumValues(int valuesCount, const double *valuesIn)
Definition: fieldimageprocessing.hpp:379
double getVariance()
Definition: fieldimageprocessing.hpp:244
int setLowerThreshold(double lowerThreshold)
Definition: fieldimageprocessing.hpp:109
FieldImagefilterCurvatureAnisotropicDiffusion createFieldImagefilterCurvatureAnisotropicDiffusion(const Field &sourceField, double timeStep, double conductance, int numIterations)
Definition: fieldimageprocessing.hpp:750
int setVariance(double variance)
Definition: fieldimageprocessing.hpp:260
int setCondition(Condition condition)
Definition: fieldimageprocessing.hpp:617
int getNumberOfBins(int valuesCount, int *valuesOut)
Definition: fieldimageprocessing.hpp:397
FieldImagefilterBinaryErode createFieldImagefilterBinaryErode(const Field &sourceField, int radius, double erode_value)
Definition: fieldimageprocessing.hpp:709
FieldImagefilterHistogram createFieldImagefilterHistogram(const Field &sourceField)
Definition: fieldimageprocessing.hpp:780
FieldImagefilterRescaleIntensity createFieldImagefilterRescaleIntensity(const Field &sourceField, double outputMin, double outputMax)
Definition: fieldimageprocessing.hpp:792
double getLowerThreshold()
Definition: fieldimageprocessing.hpp:97
Definition: fieldimageprocessing.hpp:591
double getUpperThreshold()
Definition: fieldimageprocessing.hpp:677
Image processing derived field type performing the ITK discrete gaussian filter.
Definition: fieldimageprocessing.hpp:226
A field returning result of ITK canny edge detection filter on the source field image.
Definition: fieldimageprocessing.hpp:149
int setNumberOfBins(int valuesCount, const int *valuesIn)
Definition: fieldimageprocessing.hpp:419
A field performing ITK connected threshold image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:174
cmzn_field_id getId() const
Definition: field.hpp:101
Condition
Definition: fieldimageprocessing.hpp:585
double getOutsideValue()
Definition: fieldimageprocessing.hpp:629
Definition: fieldimageprocessing.hpp:594
int setUpperThreshold(double upperValue)
Definition: fieldimageprocessing.hpp:691
enum Condition getCondition()
Definition: fieldimageprocessing.hpp:603
FieldImagefilterConnectedThreshold createFieldImagefilterConnectedThreshold(const Field &sourceField, double lowerThreshold, double upperThreshold, double replaceValue, int dimension, int seedPointsCount, const double *seedPoints)
Definition: fieldimageprocessing.hpp:740
A field performing ITK mean image filter on source_field image.
Definition: fieldimageprocessing.hpp:518
int setUpperThreshold(double upperThreshold)
Definition: fieldimageprocessing.hpp:133
FieldImagefilterHistogram castImagefilterHistogram()
Definition: fieldimageprocessing.hpp:786
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:569
double getMarginalScale()
Definition: fieldimageprocessing.hpp:434
A field performing ITK curvature anisotropic diffusion image filter on scalar source field image...
Definition: fieldimageprocessing.hpp:202
int setLowerThreshold(double lowerValue)
Definition: fieldimageprocessing.hpp:666
FieldImagefilterThreshold createFieldImagefilterThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:817
A field performing ITK binary erode image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:57
double getLowerThreshold()
Definition: fieldimageprocessing.hpp:652
Image processing derived field type performing the ITK histogram field.
Definition: fieldimageprocessing.hpp:302
A field performing ITK gradient magnitude recursive gaussian image filter on scalar source field imag...
Definition: fieldimageprocessing.hpp:466
int setComputeMinimumValues(int valuesCount, const double *valuesIn)
Definition: fieldimageprocessing.hpp:343
Definition: fieldimageprocessing.hpp:587
double getUpperThreshold()
Definition: fieldimageprocessing.hpp:121
Image processing derived field type performing the ITK binary threshold filter.
Definition: fieldimageprocessing.hpp:80
A field performing ITK sigmoid image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:544
FieldImagefilterBinaryThreshold createFieldImagefilterBinaryThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:718
A field performing ITK rescale intensity image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:492
int getComputeMaximumValues(int valuesCount, double *valuesOut)
Definition: fieldimageprocessing.hpp:360
int setMarginalScale(double marginalScale)
Definition: fieldimageprocessing.hpp:449
FieldImagefilterGradientMagnitudeRecursiveGaussian createFieldImagefilterGradientMagnitudeRecursiveGaussian(const Field &sourceField, double sigma)
Definition: fieldimageprocessing.hpp:771
FieldImagefilterBinaryThreshold castImagefilterBinaryThreshold()
Definition: fieldimageprocessing.hpp:724
int setMaxKernelWidth(int maxKernelWidth)
Definition: fieldimageprocessing.hpp:288
FieldImagefilterSigmoid createFieldImagefilterSigmoid(const Field &sourceField, double min, double max, double alpha, double beta)
Definition: fieldimageprocessing.hpp:808
int getComputeMinimumValues(int valuesCount, double *valuesOut)
Definition: fieldimageprocessing.hpp:324
FieldImagefilterThreshold castImagefilterThreshold()
Definition: fieldimageprocessing.hpp:824