00001 #include <Segmentation.h> 00002 #include <SegmentationModule/RegularizationModule.h> 00003 #include <SegmentationModule/LocalStatsRegionModule.h> 00004 #include <SegmentationModule/GaussianRegionModule.h> 00005 00008 int main(int argc, char* argv[]) 00009 { 00010 using namespace Images; 00011 using namespace levelset; 00012 using namespace segmentation; 00013 00014 BaseImage<2, float> image; 00015 std::ifstream f("image/synthetic.inr"); 00016 f >> format("inrimage") >> image; 00017 00018 FastMarchingInitializer<2,float> init; // Fast Marching Initializer 00019 LevelSet<2,float> phi(image.shape(), (double) 2.0); // Level Set 00020 Segmentation<2,float> segm(&phi, &init, &image); // Segmentation object 00021 00022 // Initalization of the level set 00023 //LevelSet<2,float>::Index center(230,170); 00024 phi.init_border(100); 00025 00026 // phi.init_small_spheres(20, 50); 00027 // initialization of the modules 00028 00029 //note variance = 100 quasi equivalent to chan vese. 00030 00031 RegularizationModule<2,float> regul(1.f); // parameters : weight 00032 LocalStatsRegionModule<2,float,float> local_stats( &image, 0.1f, 10); // parameters : image, weight, smooth 00033 //GaussianRegionModule<2,float,float> gauss(&image, 1.f); // parameters : image, weight 00034 00035 local_stats.use_local_variance() = false; 00036 //local_stats.sigma() = 20; 00037 00038 segm.add_module(regul); 00039 //segm.add_module(gauss); 00040 segm.add_module(local_stats); 00041 00042 segm.segment(1000, "localstats_"); 00043 00044 std::cout << "OK" << std::endl; 00045 00046 00047 return 0; 00048 }