/*========================================================================= medInria Copyright (c) INRIA 2013 - 2020. All rights reserved. See LICENSE.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. =========================================================================*/ #include "medUtilitiesITK.h" #include #include /** * @brief For masks with non-0/1 values, as -1024/10000, set the intensity to 0/1 * * @param data */ dtkSmartPointer medUtilitiesITK::binarizeMask(dtkSmartPointer data) { dtkSmartPointer outputData; imageFilters process; process.setInput(data); process.setParameter(imageFilters::BINARIZE); if (process.update()) { outputData = process.dataOutput(); } return outputData; } double medUtilitiesITK::minimumValue(dtkSmartPointer data) { statsROI statsProcess; statsProcess.setInput(data, 0); statsProcess.setParameter(statsROI::MINMAX); statsProcess.update(); return statsProcess.output().at(0); } double medUtilitiesITK::maximumValue(dtkSmartPointer data) { statsROI statsProcess; statsProcess.setInput(data, 0); statsProcess.setParameter(statsROI::MINMAX); statsProcess.update(); return statsProcess.output().at(1); } double medUtilitiesITK::volume(dtkSmartPointer data) { statsROI statsProcess; statsProcess.setInput(data, 0); statsProcess.setParameter(statsROI::VOLUMEML); statsProcess.update(); return statsProcess.output().at(0); } void medUtilitiesITK::meanStdDeviation(dtkSmartPointer data, dtkSmartPointer mask, double *mean, double *stdDeviation) { statsROI statsProcess; statsProcess.setInput(data, 0); statsProcess.setInput(mask, 1); statsProcess.setParameter(statsROI::MEAN_STDDEVIATION); statsProcess.update(); *mean = statsProcess.output().at(0); *stdDeviation = statsProcess.output().at(1); return; } template QString medUtilitiesITK::itkDataImageId() { return QString(); } QString medUtilitiesITK::itkDataImageId(QString type, unsigned int dimension) { if (dimension != 3 && dimension != 4) { return ""; } if (type == "char") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "unsigned char") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "short") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "unsigned short") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "int") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "unsigned int") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "long") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "unsigned long") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "float") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } else if (type == "double") { if (dimension == 3) { return itkDataImageId >(); } else if (dimension == 4) { return itkDataImageId >(); } } return ""; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageChar3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageChar4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUChar3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUChar4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageShort3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageShort4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUShort3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUShort4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageInt3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageInt4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUInt3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageUInt4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageLong3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageLong4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageULong3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageULong4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageFloat3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageFloat4"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageDouble3"; } template <> QString medUtilitiesITK::itkDataImageId() { return "itkDataImageDouble4"; }