File: morphology.py

package info (click to toggle)
opencv 2.1.0-3%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 68,800 kB
  • ctags: 52,010
  • sloc: cpp: 554,793; xml: 475,942; ansic: 153,396; python: 18,622; sh: 428; makefile: 111
file content (50 lines) | stat: -rwxr-xr-x 1,894 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/python
import sys
from opencv.cv import *
from opencv.highgui import *
src = 0;
image = 0;
dest = 0;
element = 0;
element_shape = CV_SHAPE_RECT;
global_pos = 0;

def Opening(pos):
    element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
    cvErode(src,image,element,1);
    cvDilate(image,dest,element,1);
    cvShowImage("Opening&Closing window",dest);
def Closing(pos):
    element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
    cvDilate(src,image,element,1);
    cvErode(image,dest,element,1);
    cvShowImage("Opening&Closing window",dest);
def Erosion(pos):
    element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
    cvErode(src,dest,element,1);
    cvShowImage("Erosion&Dilation window",dest);
def Dilation(pos):
    element = cvCreateStructuringElementEx( pos*2+1, pos*2+1, pos, pos, element_shape, None );
    cvDilate(src,dest,element,1);
    cvShowImage("Erosion&Dilation window",dest);

if __name__ == "__main__":
    filename = "../c/baboon.jpg"
    if len(sys.argv)==2:
        filename = sys.argv[1]
    src = cvLoadImage(filename,1)
    if not src:
        sys.exit(-1)
    image = cvCloneImage(src);
    dest = cvCloneImage(src);
    cvNamedWindow("Opening&Closing window",1);
    cvNamedWindow("Erosion&Dilation window",1);
    cvShowImage("Opening&Closing window",src);
    cvShowImage("Erosion&Dilation window",src);
    cvCreateTrackbar("Open","Opening&Closing window",global_pos,10,Opening);
    cvCreateTrackbar("Close","Opening&Closing window",global_pos,10,Closing);
    cvCreateTrackbar("Dilate","Erosion&Dilation window",global_pos,10,Dilation);
    cvCreateTrackbar("Erode","Erosion&Dilation window",global_pos,10,Erosion);
    cvWaitKey(0);
    cvDestroyWindow("Opening&Closing window");
    cvDestroyWindow("Erosion&Dilation window");