size_t determine_upsample_ratio (const Image::Info& info, const Tractography::Properties& properties, const float ratio) { if (info.ndim() < 3) throw Exception ("Cannot perform streamline mapping on image with less than three dimensions"); Properties::const_iterator i = properties.find ("output_step_size"); if (i == properties.end()) { i = properties.find ("step_size"); if (i == properties.end()) throw Exception ("Cannot perform streamline mapping: no step size information in track file header"); } const float step_size = to<float> (i->second); return determine_upsample_ratio (info, step_size, ratio); }
size_t determine_upsample_ratio (const Header& header, const Tractography::Properties& properties, const float ratio) { if (header.ndim() < 3) throw Exception ("Cannot perform streamline mapping on image with less than three dimensions"); return determine_upsample_ratio (header, get_step_size (properties), ratio); }
size_t determine_upsample_ratio (const Image::Info& info, const std::string& tck_path, const float ratio) { Tractography::Properties properties; Tractography::Reader<> reader (tck_path, properties); return determine_upsample_ratio (info, properties, ratio); }
size_t determine_upsample_ratio (const Header& header, const std::string& tck_path, const float ratio) { Properties properties; Reader<> reader (tck_path, properties); return determine_upsample_ratio (header, properties, ratio); }