本文整理汇总了C++中typenamefiltertype::Pointer::GetSum方法的典型用法代码示例。如果您正苦于以下问题:C++ Pointer::GetSum方法的具体用法?C++ Pointer::GetSum怎么用?C++ Pointer::GetSum使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类typenamefiltertype::Pointer
的用法示例。
在下文中一共展示了Pointer::GetSum方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CalculateFirstOrderStatistics
void
CalculateFirstOrderStatistics(itk::Image<TPixel, VImageDimension>* itkImage, mitk::Image::Pointer mask, mitk::GIFFirstOrderStatistics::FeatureListType & featureList)
{
typedef itk::Image<TPixel, VImageDimension> ImageType;
typedef itk::Image<int, VImageDimension> MaskType;
typedef itk::LabelStatisticsImageFilter<ImageType, MaskType> FilterType;
typedef typename FilterType::HistogramType HistogramType;
typedef typename HistogramType::IndexType HIndexType;
typedef itk::MinimumMaximumImageCalculator<ImageType> MinMaxComputerType;
typename MaskType::Pointer maskImage = MaskType::New();
mitk::CastToItkImage(mask, maskImage);
typename MinMaxComputerType::Pointer minMaxComputer = MinMaxComputerType::New();
minMaxComputer->SetImage(itkImage);
minMaxComputer->Compute();
double imageRange = minMaxComputer->GetMaximum() - minMaxComputer->GetMinimum();
typename FilterType::Pointer labelStatisticsImageFilter = FilterType::New();
labelStatisticsImageFilter->SetInput( itkImage );
labelStatisticsImageFilter->SetLabelInput(maskImage);
labelStatisticsImageFilter->SetUseHistograms(true);
labelStatisticsImageFilter->SetHistogramParameters(256, minMaxComputer->GetMinimum(),minMaxComputer->GetMaximum());
labelStatisticsImageFilter->Update();
// --------------- Range --------------------
double range = labelStatisticsImageFilter->GetMaximum(1) - labelStatisticsImageFilter->GetMinimum(1);
// --------------- Uniformity, Entropy --------------------
double count = labelStatisticsImageFilter->GetCount(1);
double std_dev = labelStatisticsImageFilter->GetSigma(1);
double mean = labelStatisticsImageFilter->GetMean(1);
auto histogram = labelStatisticsImageFilter->GetHistogram(1);
HIndexType index;
index.SetSize(1);
double binWidth = histogram->GetBinMax(0, 0) - histogram->GetBinMin(0, 0);
double uniformity = 0;
double entropy = 0;
double squared_sum = 0;
double kurtosis = 0;
double mean_absolut_deviation = 0;
double skewness = 0;
for (int i = 0; i < (int)(histogram->GetSize(0)); ++i)
{
index[0] = i;
double prob = histogram->GetFrequency(index);
double voxelValue = histogram->GetBinMin(0, i) +binWidth * 0.5;
squared_sum += prob * voxelValue*voxelValue;
kurtosis += prob* (voxelValue - mean) * (voxelValue - mean) * (voxelValue - mean) * (voxelValue - mean);
skewness += prob* (voxelValue - mean) * (voxelValue - mean) * (voxelValue - mean);
mean_absolut_deviation = prob* std::abs(voxelValue - mean);
prob /= count;
uniformity += prob*prob;
if (prob > 0)
entropy += prob * std::log(prob);
}
double rms = std::sqrt(squared_sum / count);
kurtosis = kurtosis / count / (std_dev * std_dev);
skewness = skewness / count / (std_dev * std_dev * std_dev);
mean_absolut_deviation = mean_absolut_deviation / count;
double coveredGrayValueRange = range / imageRange;
featureList.push_back(std::make_pair("FirstOrder Range",range));
featureList.push_back(std::make_pair("FirstOrder Uniformity",uniformity));
featureList.push_back(std::make_pair("FirstOrder Entropy",entropy));
featureList.push_back(std::make_pair("FirstOrder Energy",squared_sum));
featureList.push_back(std::make_pair("FirstOrder RMS",rms));
featureList.push_back(std::make_pair("FirstOrder Kurtosis",kurtosis));
featureList.push_back(std::make_pair("FirstOrder Skewness",skewness));
featureList.push_back(std::make_pair("FirstOrder Mean absolute deviation",mean_absolut_deviation));
featureList.push_back(std::make_pair("FirstOrder Covered Image Intensity Range",coveredGrayValueRange));
featureList.push_back(std::make_pair("FirstOrder Minimum",labelStatisticsImageFilter->GetMinimum(1)));
featureList.push_back(std::make_pair("FirstOrder Maximum ",labelStatisticsImageFilter->GetMaximum(1)));
featureList.push_back(std::make_pair("FirstOrder Mean",labelStatisticsImageFilter->GetMean(1)));
featureList.push_back(std::make_pair("FirstOrder Variance",labelStatisticsImageFilter->GetVariance(1)));
featureList.push_back(std::make_pair("FirstOrder Sum",labelStatisticsImageFilter->GetSum(1)));
featureList.push_back(std::make_pair("FirstOrder Median",labelStatisticsImageFilter->GetMedian(1)));
featureList.push_back(std::make_pair("FirstOrder Standard deviation",labelStatisticsImageFilter->GetSigma(1)));
featureList.push_back(std::make_pair("FirstOrder No. of Voxel",labelStatisticsImageFilter->GetCount(1)));
}
示例2: if
//.........这里部分代码省略.........
kurtosis = kurtosis / (variance * variance);
skewness = skewness / (variance * uncorrected_std_dev);
double coveredGrayValueRange = range / imageRange;
double coefficient_of_variation = (mean == 0) ? 0 : std::sqrt(variance) / mean;
double quantile_coefficient_of_dispersion = (p75th - p25th) / (p75th + p25th);
//Calculate the robust mean absolute deviation
//First, set all frequencies to 0 that are <10th or >90th percentile
double meanRobust = 0.0;
double robustMeanAbsoluteDeviation = 0.0;
if (histogramIsCalculated)
{
for (int i = 0; i < (int)(histogram->GetSize(0)); ++i)
{
index[0] = i;
if (histogram->GetBinMax(0, i) < p10th)
{
histogram->SetFrequencyOfIndex(index, 0);
}
else if (histogram->GetBinMin(0, i) > p90th)
{
histogram->SetFrequencyOfIndex(index, 0);
}
}
//Calculate the mean
for (int i = 0; i < (int)(histogram->GetSize(0)); ++i)
{
index[0] = i;
meanRobust += histogram->GetFrequency(index) * 0.5 * (histogram->GetBinMin(0, i) + histogram->GetBinMax(0, i));
}
meanRobust = meanRobust / histogram->GetTotalFrequency();
for (int i = 0; i < (int)(histogram->GetSize(0)); ++i)
{
index[0] = i;
robustMeanAbsoluteDeviation += std::abs(histogram->GetFrequency(index) *
((0.5 * (histogram->GetBinMin(0, i) + histogram->GetBinMax(0, i)))
- meanRobust
));
}
robustMeanAbsoluteDeviation = robustMeanAbsoluteDeviation / histogram->GetTotalFrequency();
}
featureList.push_back(std::make_pair(params.prefix + "Mean", labelStatisticsImageFilter->GetMean(1)));
featureList.push_back(std::make_pair(params.prefix + "Unbiased Variance", labelStatisticsImageFilter->GetVariance(1))); //Siehe Definition von Unbiased Variance estimation. (Wird nicht durch n sondern durch n-1 normalisiert)
featureList.push_back(std::make_pair(params.prefix + "Biased Variance", variance));
featureList.push_back(std::make_pair(params.prefix + "Skewness", skewness));
featureList.push_back(std::make_pair(params.prefix + "Kurtosis", kurtosis));
featureList.push_back(std::make_pair(params.prefix + "Median", labelStatisticsImageFilter->GetMedian(1)));
featureList.push_back(std::make_pair(params.prefix + "Minimum", labelStatisticsImageFilter->GetMinimum(1)));
featureList.push_back(std::make_pair(params.prefix + "Maximum", labelStatisticsImageFilter->GetMaximum(1)));
featureList.push_back(std::make_pair(params.prefix + "Range", range));
featureList.push_back(std::make_pair(params.prefix + "Mean Absolute Deviation", mean_absolut_deviation));
featureList.push_back(std::make_pair(params.prefix + "Robust Mean Absolute Deviation", robustMeanAbsoluteDeviation));
featureList.push_back(std::make_pair(params.prefix + "Median Absolute Deviation", median_absolut_deviation));
featureList.push_back(std::make_pair(params.prefix + "Coefficient Of Variation", coefficient_of_variation));
featureList.push_back(std::make_pair(params.prefix + "Quantile Coefficient Of Dispersion", quantile_coefficient_of_dispersion));
featureList.push_back(std::make_pair(params.prefix + "Energy", squared_sum));
featureList.push_back(std::make_pair(params.prefix + "Root Mean Square", rms));
typename HistogramType::MeasurementVectorType mv(1);
mv[0] = 0;
typename HistogramType::IndexType resultingIndex;
histogram->GetIndex(mv, resultingIndex);
featureList.push_back(std::make_pair(params.prefix + "Robust Mean", meanRobust));
featureList.push_back(std::make_pair(params.prefix + "Uniformity", uniformity));
featureList.push_back(std::make_pair(params.prefix + "Entropy", entropy));
featureList.push_back(std::make_pair(params.prefix + "Excess Kurtosis", kurtosis - 3));
featureList.push_back(std::make_pair(params.prefix + "Covered Image Intensity Range", coveredGrayValueRange));
featureList.push_back(std::make_pair(params.prefix + "Sum", labelStatisticsImageFilter->GetSum(1)));
featureList.push_back(std::make_pair(params.prefix + "Mode", mode_bin));
featureList.push_back(std::make_pair(params.prefix + "Mode Probability", mode_value));
featureList.push_back(std::make_pair(params.prefix + "Unbiased Standard deviation", labelStatisticsImageFilter->GetSigma(1)));
featureList.push_back(std::make_pair(params.prefix + "Biased Standard deviation", sqrt(variance)));
featureList.push_back(std::make_pair(params.prefix + "Number Of Voxels", labelStatisticsImageFilter->GetCount(1)));
featureList.push_back(std::make_pair(params.prefix + "05th Percentile", p05th));
featureList.push_back(std::make_pair(params.prefix + "10th Percentile", p10th));
featureList.push_back(std::make_pair(params.prefix + "15th Percentile", p15th));
featureList.push_back(std::make_pair(params.prefix + "20th Percentile", p20th));
featureList.push_back(std::make_pair(params.prefix + "25th Percentile", p25th));
featureList.push_back(std::make_pair(params.prefix + "30th Percentile", p30th));
featureList.push_back(std::make_pair(params.prefix + "35th Percentile", p35th));
featureList.push_back(std::make_pair(params.prefix + "40th Percentile", p40th));
featureList.push_back(std::make_pair(params.prefix + "45th Percentile", p45th));
featureList.push_back(std::make_pair(params.prefix + "50th Percentile", p50th));
featureList.push_back(std::make_pair(params.prefix + "55th Percentile", p55th));
featureList.push_back(std::make_pair(params.prefix + "60th Percentile", p60th));
featureList.push_back(std::make_pair(params.prefix + "65th Percentile", p65th));
featureList.push_back(std::make_pair(params.prefix + "70th Percentile", p70th));
featureList.push_back(std::make_pair(params.prefix + "75th Percentile", p75th));
featureList.push_back(std::make_pair(params.prefix + "80th Percentile", p80th));
featureList.push_back(std::make_pair(params.prefix + "85th Percentile", p85th));
featureList.push_back(std::make_pair(params.prefix + "90th Percentile", p90th));
featureList.push_back(std::make_pair(params.prefix + "95th Percentile", p95th));
featureList.push_back(std::make_pair(params.prefix + "Interquartile Range", (p75th - p25th)));
featureList.push_back(std::make_pair(params.prefix + "Image Dimension", VImageDimension));
featureList.push_back(std::make_pair(params.prefix + "Voxel Space", voxelSpace));
featureList.push_back(std::make_pair(params.prefix + "Voxel Volume", voxelVolume));
}