Jerome Piovano

Research in Medical Imaging and Computer Vision

3D_ChanVese.C

Chan-Vese Region Segmentation of a 3D Image

00001 #include <Segmentation.h>
00002 #include <SegmentationModule/RegularizationModule.h>
00003 #include <SegmentationModule/GaussianRegionModule.h>
00004 
00007 int main(int argc, char* argv[])
00008 {       
00009         using namespace Images;
00010         using namespace levelset;
00011         using namespace segmentation;
00012 
00013         BaseImage<3, unsigned> image;
00014         std::ifstream f("image/brain.inr");
00015         f >> image; //format("inrimage") >> image;
00016 #if 0
00017         FastMarchingInitializer<3,float> init;                               // Fast Marching Initializer
00018         LevelSet<3,float>                phi(image.shape(), (double) 2.0);   // Level Set of band thickness = 2
00019         Segmentation<3,float>            segm(&phi, &init, &image);          // Segmentation
00020 
00021         // Initalization of the level set
00022         phi.init_border(60);    
00023 
00024         // initialization of the modules
00025         RegularizationModule<3,float>        regul(1.f);           // parameters : weight
00026         GaussianRegionModule<3,float,float>  gauss(&image, 1.f);   // parameters : image, weight
00027 
00028         gauss.use_variance(false);    // => false = Chan-Vese region segmentation
00029         gauss.set_weight(0.01f);
00030         gauss.set_data_term(image);
00031 
00032         segm.add_module(regul);
00033         segm.add_module(gauss);
00034 
00035         // launch the segmentation
00036         segm.segment(1000, "gaussian_");
00037 
00038         std::cout << "OK" << std::endl;
00039 
00040 #endif
00041         return 0;
00042 }

For further information, please contact Jerome Piovano - Last update 2008-02-08