opencv/samples/swig_python/pyramid_segmentation.py

60 lines
1.6 KiB
Python
Raw Normal View History

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