Move the sources to trunk
[opencv] / samples / python / morphology.py
1 #!/usr/bin/python
2 import sys
3 from opencv.cv import *
4 from opencv.highgui import *
5 src = 0;
6 image = 0;
7 dest = 0;
8 element = 0;
9 element_shape = CV_SHAPE_RECT;
10 global_pos = 0;
11
12 def Opening(pos):
13     element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
14     cvErode(src,image,element,1);
15     cvDilate(image,dest,element,1);
16     cvShowImage("Opening&Closing window",dest);
17 def Closing(pos):
18     element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
19     cvDilate(src,image,element,1);
20     cvErode(image,dest,element,1);
21     cvShowImage("Opening&Closing window",dest);
22 def Erosion(pos):
23     element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
24     cvErode(src,dest,element,1);
25     cvShowImage("Erosion&Dilation window",dest);
26 def Dilation(pos):
27     element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
28     cvDilate(src,dest,element,1);
29     cvShowImage("Erosion&Dilation window",dest);
30
31 if __name__ == "__main__":
32     filename = "../c/baboon.jpg"
33     if len(sys.argv)==2:
34         filename = sys.argv[1]
35     src = cvLoadImage(filename,1)
36     if not src:
37         sys.exit(-1)
38     image = cvCloneImage(src);
39     dest = cvCloneImage(src);
40     cvNamedWindow("Opening&Closing window",1);
41     cvNamedWindow("Erosion&Dilation window",1);
42     cvShowImage("Opening&Closing window",src);
43     cvShowImage("Erosion&Dilation window",src);
44     cvCreateTrackbar("Open","Opening&Closing window",global_pos,10,Opening);
45     cvCreateTrackbar("Close","Opening&Closing window",global_pos,10,Closing);
46     cvCreateTrackbar("Dilate","Erosion&Dilation window",global_pos,10,Dilation);
47     cvCreateTrackbar("Erode","Erosion&Dilation window",global_pos,10,Erosion);
48     cvWaitKey(0);
49     cvDestroyWindow("Opening&Closing window");
50     cvDestroyWindow("Erosion&Dilation window");