Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

Commit

Permalink
Merge topic 'SIMPLEITK-507_UpdateSegmentationExamples'
Browse files Browse the repository at this point in the history
916be6d Updating Python NeighborhoodCennected example and adding test
d3e00bb Updating CXX NeighborhoodConnected example and adding test
5531faa BUG: output of NeighborhoodConnected filter was input
8162ab6 removing lua segmentation examples
66077da Updating CXX ConnectedThreshold example and adding test
fc7e410 Updating ConnectedThreshold python example and adding tests
  • Loading branch information
blowekamp authored and kwrobot committed Mar 8, 2014
2 parents ebbece7 + 916be6d commit 8c7bd2b
Show file tree
Hide file tree
Showing 9 changed files with 217 additions and 270 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"number_of_inputs" : 1,
"doc" : "Some global documentation",
"pixel_types" : "BasicPixelIDTypeList",
"output_pixel_type" : "uint8_t",
"members" : [
{
"name" : "Lower",
Expand Down
24 changes: 10 additions & 14 deletions Examples/Segmentation/ConnectedThresholdImageFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#include <stdlib.h>
#include <iostream>

namespace sitk = itk::simple;

int main( int argc, char *argv[])
{

Expand All @@ -48,22 +50,15 @@ int main( int argc, char *argv[])
// Read the image
//

itk::simple::ImageFileReader reader;
sitk::ImageFileReader reader;
reader.SetFileName( std::string( argv[1] ) );
itk::simple::Image image = reader.Execute();


//
// Set up writer
//
itk::simple::ImageFileWriter writer;
writer.SetFileName( std::string( argv[2] ) );
sitk::Image image = reader.Execute();


//
// Blur using CurvatureFlowImageFilter
//
itk::simple::CurvatureFlowImageFilter blurFilter;
sitk::CurvatureFlowImageFilter blurFilter;
blurFilter.SetNumberOfIterations( 5 );
blurFilter.SetTimeStep( 0.125 );
image = blurFilter.Execute( image );
Expand All @@ -72,7 +67,7 @@ int main( int argc, char *argv[])
//
// Set up ConnectedThresholdImageFilter for segmentation
//
itk::simple::ConnectedThresholdImageFilter segmentationFilter;
sitk::ConnectedThresholdImageFilter segmentationFilter;
segmentationFilter.SetLower( atof( argv[3] ) );
segmentationFilter.SetUpper( atof( argv[4] ) );
segmentationFilter.SetReplaceValue( 255 );
Expand All @@ -83,21 +78,22 @@ int main( int argc, char *argv[])
seed.push_back(atoi(argv[i]));
seed.push_back(atoi(argv[i+1]));
segmentationFilter.AddSeed(seed);
std::cout << "Adding a seed at ";
std::cout << "Adding a seed at: ";
for( unsigned int j = 0; j < seed.size(); ++j )
{
std::cout << seed[j] << " ";
}

std::cout << std::endl;
}

itk::simple::Image outImage = segmentationFilter.Execute(image);
sitk::Image outImage = segmentationFilter.Execute(image);


//
// Write out the resulting file
//
sitk::ImageFileWriter writer;
writer.SetFileName( std::string( argv[2] ) );
writer.Execute(outImage);

return 0;
Expand Down
56 changes: 0 additions & 56 deletions Examples/Segmentation/ConnectedThresholdImageFilter.lua

This file was deleted.

143 changes: 69 additions & 74 deletions Examples/Segmentation/ConnectedThresholdImageFilter.py
Original file line number Diff line number Diff line change
@@ -1,80 +1,75 @@
'''=========================================================================
'
' Copyright Insight Software Consortium
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0.txt
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
'========================================================================='''
'
' Copyright Insight Software Consortium
'
' Licensed under the Apache License, Version 2.0 (the "License");
' you may not use this file except in compliance with the License.
' You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0.txt
'
' Unless required by applicable law or agreed to in writing, software
' distributed under the License is distributed on an "AS IS" BASIS,
' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' See the License for the specific language governing permissions and
' limitations under the License.
'
'========================================================================='''

from __future__ import print_function

import SimpleITK
import SimpleITK as sitk
import sys
import os

#
# Check Command Line
#
if len( sys.argv ) < 7:
print("Usage: ConnectedThresholdImageFilter inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]");
sys.exit( 1 )


#
# Read the image
#
reader = sitk.ImageFileReader()
reader.SetFileName( sys.argv[1] )
image = reader.Execute();

#
# Blur using CurvatureFlowImageFilter
#
blurFilter = sitk.CurvatureFlowImageFilter()
blurFilter.SetNumberOfIterations( 5 )
blurFilter.SetTimeStep( 0.125 )
image = blurFilter.Execute( image )

#
# Set up ConnectedThresholdImageFilter for segmentation
#
segmentationFilter = sitk.ConnectedThresholdImageFilter()
segmentationFilter.SetLower( float(sys.argv[3]) )
segmentationFilter.SetUpper( float(sys.argv[4]) )
segmentationFilter.SetReplaceValue( 255 )

for i in range( 5, len(sys.argv)-1, 2 ):
seed = [ int(sys.argv[i]), int(sys.argv[i+1]) ]
segmentationFilter.AddSeed( seed )
print( "Adding seed at: ", seed, " with intensity: ", image.GetPixel(*seed) )

# Run the segmentation filter
image = segmentationFilter.Execute( image )
image[seed] = 255

#
# Write out the result
#
writer = sitk.ImageFileWriter()
writer.SetFileName( sys.argv[2] )
writer.Execute( image )


if ( not "SITK_NOSHOW" in os.environ ):
sitk.Show( image, "ConntectedThreshold" )

if __name__ == '__main__':

#
# Check Command Line
#
if len( sys.argv ) < 7:
print("Usage: ConnectedThresholdImageFilter inputImage outputImage lowerThreshold upperThreshold seedX seedY [seed2X seed2Y ... ]");
sys.exit( 1 )


#
# Read the image
#
reader = SimpleITK.ImageFileReader()
reader.SetFileName( sys.argv[1] )
image = reader.Execute();

#
# Set up the writer
#
writer = SimpleITK.ImageFileWriter()
writer.SetFileName( sys.argv[2] )

#
# Blur using CurvatureFlowImageFilter
#
blurFilter = SimpleITK.CurvatureFlowImageFilter()
blurFilter.SetNumberOfIterations( 5 )
blurFilter.SetTimeStep( 0.125 )
image = blurFilter.Execute( image )

#
# Set up ConnectedThresholdImageFilter for segmentation
#
segmentationFilter = SimpleITK.ConnectedThresholdImageFilter()
segmentationFilter.SetLower( float(sys.argv[3]) )
segmentationFilter.SetUpper( float(sys.argv[4]) )
segmentationFilter.SetReplaceValue( 255 )

for i in range( 5, len(sys.argv)-1, 2 ):
seed = SimpleITK.Index( int(sys.argv[i]), int(sys.argv[i+1]) )
segmentationFilter.AddSeed( seed )
print( "Adding seed at ", seed.ToString() )

# Run the segmentation filter
image = segmentationFilter.Execute( image )

#
# Write out the result
#
writer.Execute( image )

sys.exit(0)




14 changes: 8 additions & 6 deletions Examples/Segmentation/NeighborhoodConnectedImageFilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#include <stdlib.h>
#include <iostream>

namespace sitk = itk::simple;

int main( int argc, char *argv[])
{

Expand All @@ -48,22 +50,22 @@ int main( int argc, char *argv[])
// Read the image
//

itk::simple::ImageFileReader reader;
sitk::ImageFileReader reader;
reader.SetFileName( std::string( argv[1] ) );
itk::simple::Image image = reader.Execute();
sitk::Image image = reader.Execute();


//
// Set up writer
//
itk::simple::ImageFileWriter writer;
sitk::ImageFileWriter writer;
writer.SetFileName( std::string( argv[2] ) );


//
// Blur using CurvatureFlowImageFilter
//
itk::simple::CurvatureFlowImageFilter blurFilter;
sitk::CurvatureFlowImageFilter blurFilter;
blurFilter.SetNumberOfIterations( 5 );
blurFilter.SetTimeStep( 0.125 );
image = blurFilter.Execute( image );
Expand All @@ -72,7 +74,7 @@ int main( int argc, char *argv[])
//
// Set up NeighborhoodConnectedImageFilter for segmentation
//
itk::simple::NeighborhoodConnectedImageFilter segmentationFilter;
sitk::NeighborhoodConnectedImageFilter segmentationFilter;
segmentationFilter.SetLower( atof( argv[3] ) );
segmentationFilter.SetUpper( atof( argv[4] ) );
segmentationFilter.SetReplaceValue( 255 );
Expand All @@ -96,7 +98,7 @@ int main( int argc, char *argv[])
std::cout << std::endl;
}

itk::simple::Image outImage = segmentationFilter.Execute(image);
sitk::Image outImage = segmentationFilter.Execute(image);


//
Expand Down
59 changes: 0 additions & 59 deletions Examples/Segmentation/NeighborhoodConnectedImageFilter.lua

This file was deleted.

0 comments on commit 8c7bd2b

Please sign in to comment.