- 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;
+ }