void Hdf5VolumeStore::retrieveAffinities( ExplicitVolume<float>& xAffinities, ExplicitVolume<float>& yAffinities, ExplicitVolume<float>& zAffinities) { readVolume(xAffinities, "xAffinities"); readVolume(yAffinities, "yAffinities"); readVolume(zAffinities, "zAffinities"); }
inline void Volume<T>::read(HDF5Id file_id, u32 index) { HDF5Group volume_root_group; HDF5Group::getRootGroup(file_id, kVolumeRootGroup, volume_root_group); // get the size of the volume group name u32 size = H5Lget_name_by_idx(volume_root_group.id(), ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, index, NULL, 0, H5P_DEFAULT); // for some reason HDF5 shorts the name size by 1. Restore it to // proper length here. ++size; // get the name of the link at index char buf[size]; H5Lget_name_by_idx(volume_root_group.id(), ".", H5_INDEX_CRT_ORDER, H5_ITER_INC, index, buf, size, H5P_DEFAULT); String volume_name(buf); // now read in this volume by name readVolume(volume_root_group.id(), volume_name); }
inline void Volume<T>::read(HDF5Id file_id, String volume_name) { HDF5Group volume_root_group; HDF5Group::getRootGroup(file_id, kVolumeRootGroup, volume_root_group); readVolume(volume_root_group.id(), volume_name); }
void Hdf5VolumeStore::retrieveGroundTruth(ExplicitVolume<int>& labels) { readVolume(labels, "groundtruth"); }
void Hdf5VolumeStore::retrieveBoundaries(ExplicitVolume<float>& boundaries) { readVolume(boundaries, "boundaries"); }
void Hdf5VolumeStore::retrieveIntensities(ExplicitVolume<float>& intensities) { readVolume(intensities, "intensities"); }
void Hdf5VolumeStore::retrieveLabels(ExplicitVolume<int>& labels) { _hdfFile.cd("/volumes"); readVolume(labels, "labels"); }
void Hdf5VolumeStore::retrieveIntensities(ExplicitVolume<float>& intensities) { _hdfFile.cd("/volumes"); readVolume(intensities, "intensities"); }