Update to 2.0.0 tree from current Fremantle build
[opencv] / samples / swig_python / morphology.py
diff --git a/samples/swig_python/morphology.py b/samples/swig_python/morphology.py
new file mode 100755 (executable)
index 0000000..959efbb
--- /dev/null
@@ -0,0 +1,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");