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
525 explicit FieldImagefilterMean(cmzn_field_id field_id) : Field(field_id)
528 friend FieldImagefilterMean
530 int valuesCount,
const int *radiusSizesIn);
534 FieldImagefilterMean() : Field(0)
538 class FieldImagefilterSigmoid :
public Field
551 explicit FieldImagefilterSigmoid(cmzn_field_id field_id) : Field(field_id)
554 friend FieldImagefilterSigmoid
556 double min,
double max,
double alpha,
double beta);
560 FieldImagefilterSigmoid() : Field(0)
580 Field(reinterpret_cast<cmzn_field_id>(field_imagefilter_threshold_id))
607 return static_cast<Condition>(cmzn_field_imagefilter_threshold_get_condition(
608 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id)));
621 return cmzn_field_imagefilter_threshold_set_condition(
622 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id),
623 static_cast<cmzn_field_imagefilter_threshold_condition>(condition));
633 return cmzn_field_imagefilter_threshold_get_outside_value(
634 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
645 return cmzn_field_imagefilter_threshold_set_outside_value(
646 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), outsideValue);
656 return cmzn_field_imagefilter_threshold_get_lower_threshold(
657 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
670 return cmzn_field_imagefilter_threshold_set_lower_threshold(
671 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), lowerValue);
681 return cmzn_field_imagefilter_threshold_get_upper_threshold(
682 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id));
695 return cmzn_field_imagefilter_threshold_set_upper_threshold(
696 reinterpret_cast<cmzn_field_imagefilter_threshold_id>(
id), upperValue);
701 inline FieldImagefilterBinaryDilate
703 int radius,
double dilate_value)
706 cmzn_fieldmodule_create_field_imagefilter_binary_dilate(
id, sourceField.
getId(),
707 radius, dilate_value));
712 int radius,
double erode_value)
715 cmzn_fieldmodule_create_field_imagefilter_binary_erode(
id, sourceField.
getId(),
716 radius, erode_value));
723 cmzn_fieldmodule_create_field_imagefilter_binary_threshold(
id, sourceField.
getId())));
733 double variance,
double maximumError,
double upperThreshold,
double lowerThreshold)
736 cmzn_fieldmodule_create_field_imagefilter_canny_edge_detection(
737 id, sourceField.
getId(),
738 variance, maximumError, upperThreshold, lowerThreshold));
743 double lowerThreshold,
double upperThreshold,
double replaceValue,
744 int dimension,
int seedPointsCount,
const double *seedPoints)
747 cmzn_fieldmodule_create_field_imagefilter_connected_threshold(
id, sourceField.
getId(),
748 lowerThreshold, upperThreshold, replaceValue, seedPointsCount, dimension, seedPoints));
753 double timeStep,
double conductance,
int numIterations)
756 cmzn_fieldmodule_create_field_imagefilter_curvature_anisotropic_diffusion(
id, sourceField.
getId(),
757 timeStep, conductance, numIterations));
764 cmzn_fieldmodule_create_field_imagefilter_discrete_gaussian(
id, sourceField.
getId())));
777 cmzn_fieldmodule_create_field_imagefilter_gradient_magnitude_recursive_gaussian(
id,
778 sourceField.
getId(), sigma));
785 cmzn_fieldmodule_create_field_imagefilter_histogram(
id, sourceField.
getId())));
795 double outputMin,
double outputMax)
798 cmzn_fieldmodule_create_field_imagefilter_rescale_intensity(
id,
799 sourceField.
getId(), outputMin, outputMax));
803 int valuesCount,
const int *radiusSizesIn)
806 id, sourceField.
getId(), valuesCount, radiusSizesIn));
811 double min,
double max,
double alpha,
double beta)
814 cmzn_fieldmodule_create_field_imagefilter_sigmoid(
id,
815 sourceField.
getId(), min, max, alpha, beta));
822 cmzn_fieldmodule_create_field_imagefilter_threshold(
823 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:732
FieldImagefilterDiscreteGaussian castImagefilterDiscreteGaussian()
Definition: fieldimageprocessing.hpp:767
int setOutsideValue(double outsideValue)
Definition: fieldimageprocessing.hpp:643
FieldImagefilterDiscreteGaussian createFieldImagefilterDiscreteGaussian(const Field &sourceField)
Definition: fieldimageprocessing.hpp:761
Base field type: an abstraction of a mathematical field.
Definition: field.hpp:46
Definition: fieldimageprocessing.hpp:591
FieldImagefilterBinaryDilate createFieldImagefilterBinaryDilate(const Field &sourceField, int radius, double dilate_value)
Definition: fieldimageprocessing.hpp:702
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:752
int setVariance(double variance)
Definition: fieldimageprocessing.hpp:260
int setCondition(Condition condition)
Definition: fieldimageprocessing.hpp:619
int getNumberOfBins(int valuesCount, int *valuesOut)
Definition: fieldimageprocessing.hpp:397
FieldImagefilterBinaryErode createFieldImagefilterBinaryErode(const Field &sourceField, int radius, double erode_value)
Definition: fieldimageprocessing.hpp:711
FieldImagefilterHistogram createFieldImagefilterHistogram(const Field &sourceField)
Definition: fieldimageprocessing.hpp:782
FieldImagefilterRescaleIntensity createFieldImagefilterRescaleIntensity(const Field &sourceField, double outputMin, double outputMax)
Definition: fieldimageprocessing.hpp:794
double getLowerThreshold()
Definition: fieldimageprocessing.hpp:97
Definition: fieldimageprocessing.hpp:593
double getUpperThreshold()
Definition: fieldimageprocessing.hpp:679
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:98
FieldImagefilterMean createFieldImagefilterMean(const Field &sourceField, int valuesCount, const int *radiusSizesIn)
Definition: fieldimageprocessing.hpp:802
Condition
Definition: fieldimageprocessing.hpp:587
double getOutsideValue()
Definition: fieldimageprocessing.hpp:631
Definition: fieldimageprocessing.hpp:596
int setUpperThreshold(double upperValue)
Definition: fieldimageprocessing.hpp:693
enum Condition getCondition()
Definition: fieldimageprocessing.hpp:605
FieldImagefilterConnectedThreshold createFieldImagefilterConnectedThreshold(const Field &sourceField, double lowerThreshold, double upperThreshold, double replaceValue, int dimension, int seedPointsCount, const double *seedPoints)
Definition: fieldimageprocessing.hpp:742
Definition: fieldimageprocessing.hpp:520
int setUpperThreshold(double upperThreshold)
Definition: fieldimageprocessing.hpp:133
FieldImagefilterHistogram castImagefilterHistogram()
Definition: fieldimageprocessing.hpp:788
Image processing derived field type performing the ITK threshold filter.
Definition: fieldimageprocessing.hpp:571
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:668
FieldImagefilterThreshold createFieldImagefilterThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:819
A field performing ITK binary erode image filter on scalar source field image.
Definition: fieldimageprocessing.hpp:57
double getLowerThreshold()
Definition: fieldimageprocessing.hpp:654
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:589
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:546
FieldImagefilterBinaryThreshold createFieldImagefilterBinaryThreshold(const Field &sourceField)
Definition: fieldimageprocessing.hpp:720
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:773
FieldImagefilterBinaryThreshold castImagefilterBinaryThreshold()
Definition: fieldimageprocessing.hpp:726
int setMaxKernelWidth(int maxKernelWidth)
Definition: fieldimageprocessing.hpp:288
FieldImagefilterSigmoid createFieldImagefilterSigmoid(const Field &sourceField, double min, double max, double alpha, double beta)
Definition: fieldimageprocessing.hpp:810
int getComputeMinimumValues(int valuesCount, double *valuesOut)
Definition: fieldimageprocessing.hpp:324
FieldImagefilterThreshold castImagefilterThreshold()
Definition: fieldimageprocessing.hpp:826