diff --git a/diff_pvm.cc b/diff_pvm.cc index 7d1ebfe13f4b767688f6a25062542eb2c60cd4b3..f6c280577c178685015512e123d8a88665166f5e 100644 --- a/diff_pvm.cc +++ b/diff_pvm.cc @@ -298,6 +298,16 @@ int main(int argc, char *argv[]) // return 0; int ntpts = data.tsize(); Matrix bvecs = read_ascii_matrix(opts.bvecsfile.value()); + if(bvecs.Nrows()>3) bvecs=bvecs.t(); + for(int i=1;i<=bvecs.Ncols();i++){ + float tmpsum=sqrt(bvecs(1,i)*bvecs(1,i)+bvecs(2,i)*bvecs(2,i)+bvecs(3,i)*bvecs(3,i)); + if(tmpsum!=0){ + bvecs(1,i)=bvecs(1,i)/tmpsum; + bvecs(2,i)=bvecs(2,i)/tmpsum; + bvecs(3,i)=bvecs(3,i)/tmpsum; + } + } + Matrix bvals = read_ascii_matrix(opts.bvalsfile.value()); // mask: Volume mask; diff --git a/xfibres.cc b/xfibres.cc index b4da4662f2daa183d817a0138cb0d868dbaa5d29..1f28291dc700a7deca74183b112cf46602b8f4f0 100644 --- a/xfibres.cc +++ b/xfibres.cc @@ -576,6 +576,17 @@ int main(int argc, char *argv[]) volume<int> vol2matrixkey; bvals=read_ascii_matrix(opts.bvalsfile.value()); bvecs=read_ascii_matrix(opts.bvecsfile.value()); + if(bvecs.Nrows()>3) bvecs=bvecs.t(); + for(int i=1;i<=bvecs.Ncols();i++){ + float tmpsum=sqrt(bvecs(1,i)*bvecs(1,i)+bvecs(2,i)*bvecs(2,i)+bvecs(3,i)*bvecs(3,i)); + if(tmpsum!=0){ + bvecs(1,i)=bvecs(1,i)/tmpsum; + bvecs(2,i)=bvecs(2,i)/tmpsum; + bvecs(3,i)=bvecs(3,i)/tmpsum; + } + } + + {//scope in which the data exists in 4D format; volume4D<float> data;