#!/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");