//std::cout<<"mArgsInfo.variance_given"<<mArgsInfo.variance_given<<std::endl;
- if (mArgsInfo.variance_given != dim) {
- std::cerr << "The number of variance parameters must be equal to the image dimension." << std::endl;
- return;
- }
- for (unsigned int i = 0; i < dim; i++) {
- //std::cout<<"mArgsInfo.variance_arg[i]"<<mArgsInfo.variance_arg[i]<<std::endl;
- varianceArray[i] = mArgsInfo.variance_arg[i];
+ //if (mArgsInfo.variance_given != dim) {
+ // std::cerr << "The number of variance parameters must be equal to the image dimension." << std::endl;
+ // return;
+ //}
+
+ if (mArgsInfo.variance_given && mArgsInfo.variance_given == dim) {
+ for (unsigned int i = 0; i < dim; i++) {
+ //std::cout<<"mArgsInfo.variance_arg[i]"<<mArgsInfo.variance_arg[i]<<std::endl;
+ varianceArray[i] = mArgsInfo.variance_arg[i];
+ }
+ } else if (mArgsInfo.variance_given && mArgsInfo.variance_given == 1) {
+ for (unsigned int i = 0; i < dim; i++) {
+ varianceArray[i] = mArgsInfo.variance_arg[0];
+ }
+ } else {
+ for (unsigned int i = 0; i < dim; i++) {
+ varianceArray[i] = 1.0;
+ }
}
// Reading input
typename InputImageType::Pointer input = this->template GetInput<InputImageType>(0);
typename DiscreteGaussianImageFilterType::Pointer gaussianFilter=DiscreteGaussianImageFilterType::New();
gaussianFilter->SetInput(input);
gaussianFilter->SetVariance(varianceArray);
+ gaussianFilter->SetUseImageSpacing(true);
gaussianFilter->Update();
+ //std::cout<<"variance value="<<gaussianFilter->GetVariance()<<std::endl;
+
// Write/Save results
this->template SetNextOutput<OutputImageType>(gaussianFilter->GetOutput());
}