--- /dev/null
+#!/usr/bin/python
+import sys
+from opencv.cv import *
+from opencv.highgui import *
+image = [None, None]
+image0 = None
+image1 = None
+threshold1 = 255
+threshold2 = 30
+l = level = 4;
+block_size = 1000;
+filter = CV_GAUSSIAN_5x5;
+storage = None
+min_comp = CvConnectedComp()
+
+def set_thresh1( val ):
+ global threshold1
+ threshold1 = val
+ ON_SEGMENT()
+
+def set_thresh2( val ):
+ global threshold2
+ threshold2 = val
+ ON_SEGMENT()
+
+def ON_SEGMENT():
+ global storage
+ global min_comp
+ comp = cvPyrSegmentation(image0, image1, storage, level, threshold1+1, threshold2+1);
+ cvShowImage("Segmentation", image1);
+
+if __name__ == "__main__":
+ filename = "../c/fruits.jpg";
+ if len(sys.argv) == 2:
+ filename = sys.argv[1]
+ image[0] = cvLoadImage( filename, 1)
+ if not image[0]:
+ print "Error opening %s" % filename
+ sys.exit(-1)
+
+ cvNamedWindow("Source", 0);
+ cvShowImage("Source", image[0]);
+ cvNamedWindow("Segmentation", 0);
+ storage = cvCreateMemStorage ( block_size );
+ image[0].width &= -(1<<level);
+ image[0].height &= -(1<<level);
+ image0 = cvCloneImage( image[0] );
+ image1 = cvCloneImage( image[0] );
+ # segmentation of the color image
+ l = 1;
+ threshold1 =255;
+ threshold2 =30;
+ ON_SEGMENT();
+ sthreshold1 = cvCreateTrackbar("Threshold1", "Segmentation", threshold1, 255, set_thresh1);
+ sthreshold2 = cvCreateTrackbar("Threshold2", "Segmentation", threshold2, 255, set_thresh2);
+ cvShowImage("Segmentation", image1);
+ cvWaitKey(0);
+ cvDestroyWindow("Segmentation");
+ cvDestroyWindow("Source");