public void detection_region(Image image) {
        long start = System.currentTimeMillis();
        long end;
        int region = 1;
        liste = new ArrayList();
        Color noir = new Color(0, 0, 0);
        
        //On init à 0 les pixels noirs ( frontières )
        regions.add(new Region(0));
        for(int i = 0; i < image.getHauteur(); i++){
            for(int j = 0; j < image.getLargeur(); j++){
                if(image.getPixel(i, j).getColor().equals(noir)){
                    regions.get(0).addPixel(image.getPixel(i, j));
                }
            }
        }
        //Puis on fait la détection des régions pixel par pixel
        for(int i = 0; i < image.getHauteur(); i++){
            for(int j = 0; j < image.getLargeur(); j++){
                if(image.getPixel(i, j).getAttribut() == -1){
                    regions.add(new Region(region));
                    liste.add(image.getPixel(i, j));
                    while(!liste.isEmpty()){
                        test_pixel(liste.remove(liste.size() - 1), image, regions.get(region));
                    }
                    region++;
                }
                //On marque les pixels blancs prêts des frontières
                if(image.getPixel(i, j).getColor().equals(Color.WHITE)){
                    pixel_frontiere_proche(i, j, image);
                }
            }
        }
        //Enfin on traite le fait que les régions peuvent être voisines
        for(int i = 1; i < regions.size(); i++){
            regions.get(i).ajoutVoisin(image);
        }
        
        end = System.currentTimeMillis();
        timer = end - start;
    }