Skip to content
Snippets Groups Projects
Commit ee0c7e77 authored by Mark Jenkinson's avatar Mark Jenkinson
Browse files

Change in options (now mask is optional)

parent 013281bd
No related branches found
No related tags found
No related merge requests found
...@@ -18,9 +18,12 @@ using namespace MISCMATHS; ...@@ -18,9 +18,12 @@ using namespace MISCMATHS;
void print_usage(const string& progname) { void print_usage(const string& progname) {
cerr << "Usage: " << progname << " <input 4D volume> <mask volume> <output text file>" cerr << "Usage: " << progname << " <input 4D volume> <output text file> [<mask volume>] "
<< endl << endl; << endl << endl;
cerr << "e.g. " << progname << " filtered_func_data my_mask meants.txt" << endl; cerr << "e.g. " << progname << " filtered_func_data meants.txt my_mask"
<< endl;
cerr << "e.g. " << progname << " filtered_func_data meants.txt"
<< endl;
} }
...@@ -31,7 +34,7 @@ int main(int argc,char *argv[]) ...@@ -31,7 +34,7 @@ int main(int argc,char *argv[])
Tracer tr("main"); Tracer tr("main");
string progname=argv[0]; string progname=argv[0];
if (argc<4) { if (argc<3) {
print_usage(progname); print_usage(progname);
return -1; return -1;
} }
...@@ -39,8 +42,12 @@ int main(int argc,char *argv[]) ...@@ -39,8 +42,12 @@ int main(int argc,char *argv[])
volume4D<float> vin; volume4D<float> vin;
read_volume4D(vin,argv[1]); read_volume4D(vin,argv[1]);
bool use_mask = false;
volume<float> mask; volume<float> mask;
read_volume(mask,argv[2]); if (argc>=4) {
use_mask = true;
read_volume(mask,argv[3]);
}
if (!samesize(vin[0],mask)) { if (!samesize(vin[0],mask)) {
cerr << "ERROR: Mask and Input volumes have different (x,y,z) size." cerr << "ERROR: Mask and Input volumes have different (x,y,z) size."
...@@ -56,7 +63,8 @@ int main(int argc,char *argv[]) ...@@ -56,7 +63,8 @@ int main(int argc,char *argv[])
for (int z=mask.minz(); z<mask.maxz(); z++) { for (int z=mask.minz(); z<mask.maxz(); z++) {
for (int y=mask.miny(); y<mask.maxy(); y++) { for (int y=mask.miny(); y<mask.maxy(); y++) {
for (int x=mask.minx(); x<mask.maxx(); x++) { for (int x=mask.minx(); x<mask.maxx(); x++) {
if (fabs(mask(x,y,z))>1e-8) { // arbitrary "0" threshold if ( (!use_mask) || (fabs(mask(x,y,z))>1e-8)) {
// arbitrary "0" threshold
meants += vin.voxelts(x,y,z); meants += vin.voxelts(x,y,z);
num++; num++;
} }
...@@ -68,7 +76,7 @@ int main(int argc,char *argv[]) ...@@ -68,7 +76,7 @@ int main(int argc,char *argv[])
meants /= (float) num; meants /= (float) num;
// save the result // save the result
write_ascii_matrix(meants,argv[3]); write_ascii_matrix(meants,argv[2]);
return 0; return 0;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment