forked from InsightSoftwareConsortium/ITK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
WatershedSegmentation1.java
46 lines (32 loc) · 1.32 KB
/
WatershedSegmentation1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
* Example on the use of the WatershedImageFilter
*
*/
import InsightToolkit.*;
public class WatershedSegmentation1
{
public static void main( String argv[] )
{
System.out.println("WatershedSegmentation1 Example");
itkImageFileReaderF2_Pointer reader = itkImageFileReaderF2.itkImageFileReaderF2_New();
reader.SetFileName( argv[0] );
itkGradientAnisotropicDiffusionImageFilterF2F2_Pointer diffusion =
itkGradientAnisotropicDiffusionImageFilterF2F2.itkGradientAnisotropicDiffusionImageFilterF2F2_New();
diffusion.SetInput( reader.GetOutput() );
diffusion.SetTimeStep( 0.0625 );
diffusion.SetConductanceParameter( 9.0 );
diffusion.SetNumberOfIterations( 5 );
itkGradientMagnitudeImageFilterF2F2_Pointer gradient =
itkGradientMagnitudeImageFilterF2F2.itkGradientMagnitudeImageFilterF2F2_New();
gradient.SetInput(diffusion.GetOutput());
itkWatershedImageFilterF2_Pointer watershed =
itkWatershedImageFilterF2.itkWatershedImageFilterF2_New();
watershed.SetInput( gradient.GetOutput() );
watershed.SetThreshold( 0.01 );
watershed.SetLevel( 0.2 );
itkImageFileWriterUL2_Pointer writer = itkImageFileWriterUL2.itkImageFileWriterUL2_New();
writer.SetFileName( argv[1] );
writer.SetInput( watershed.GetOutput() );
writer.Update();
}
}