From 55f45d8f82c9aeb43d47b51608cdf1f999faa374 Mon Sep 17 00:00:00 2001 From: Ally Warner Date: Thu, 23 May 2019 22:25:23 -0600 Subject: [PATCH 1/3] Fixed segmentation labeling --- src/lib/nrrd2cleaver/itk/NRRDTools.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp index 7b7e000e..4ad63117 100644 --- a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp +++ b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp @@ -44,7 +44,7 @@ #include #include -//typedefs needed. +//typedefs needed typedef float PixelType; typedef itk::Image< PixelType, 3 > ImageType; typedef itk::ImageFileReader< ImageType > ReaderType; @@ -67,7 +67,7 @@ bool checkImageSize(ImageType::Pointer inputImg, double sigma) auto spacing = inputImg->GetSpacing(); std::vector imageSize{ dims[0] * spacing[0], dims[1] * spacing[1], dims[2] * spacing[2] }; double imageSizeMin = *(std::min_element(std::begin(imageSize), std::end(imageSize))); - + return (sigma / imageSizeMin) >= 0.1; } @@ -156,7 +156,7 @@ NRRDTools::segmentationToIndicatorFunctions(std::string filename, double sigma) while (!imageIterator.IsAtEnd()) { // Get the value of the current pixel. float val = static_cast(imageIterator.Get()); - ((cleaver::FloatField*)fields[num])->data()[pixel++] = val; + ((cleaver::FloatField*)fields[num])->data()[pixel++] = -val; ++imageIterator; //Error checking From a4e1621c981f2d633ef5899ff28c75e3957c355f Mon Sep 17 00:00:00 2001 From: Ally Warner Date: Tue, 28 May 2019 16:10:47 -0600 Subject: [PATCH 2/3] Fix scaling by 3x --- src/lib/nrrd2cleaver/itk/NRRDTools.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp index 4ad63117..4e4d50dd 100644 --- a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp +++ b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp @@ -152,6 +152,7 @@ NRRDTools::segmentationToIndicatorFunctions(std::string filename, double sigma) size_t pixel = 0; float min = static_cast(imageIterator.Get()); float max = static_cast(imageIterator.Get()); + auto spacing = img->GetSpacing(); std::string error = "none"; while (!imageIterator.IsAtEnd()) { // Get the value of the current pixel. @@ -181,7 +182,7 @@ NRRDTools::segmentationToIndicatorFunctions(std::string filename, double sigma) fields[num]->setError(error); ((cleaver::FloatField*)fields[num])->setScale( - cleaver::vec3(1., 1., 1.)); + cleaver::vec3(spacing[0], spacing[1], spacing[2])); } return fields; } From fc80b8492a20718202946f2a7fa0b95661e085bb Mon Sep 17 00:00:00 2001 From: allywarner Date: Wed, 5 Jun 2019 15:56:04 -0600 Subject: [PATCH 3/3] Indicator function spacing --- src/lib/nrrd2cleaver/itk/NRRDTools.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp index 4e4d50dd..9fe9b17b 100644 --- a/src/lib/nrrd2cleaver/itk/NRRDTools.cpp +++ b/src/lib/nrrd2cleaver/itk/NRRDTools.cpp @@ -227,6 +227,7 @@ NRRDTools::loadNRRDFiles(std::vector files, fields[num]->setWarning(warning); itk::ImageRegionConstIterator imageIterator(img, region); size_t pixel = 0; + auto spacing = img->GetSpacing(); float min = static_cast(imageIterator.Get()); float max = static_cast(imageIterator.Get()); std::string error = "none"; @@ -257,7 +258,7 @@ NRRDTools::loadNRRDFiles(std::vector files, } fields[num]->setError(error); - ((cleaver::FloatField*)fields[num])->setScale(cleaver::vec3(1., 1., 1.)); + ((cleaver::FloatField*)fields[num])->setScale(cleaver::vec3(spacing[0], spacing[1], spacing[2])); num++; } return fields;