Update to 2.0.0 tree from current Fremantle build
[opencv] / samples / swig_python / laplace.py
1 #!/usr/bin/python
2 from opencv.cv import *
3 from opencv.highgui import *
4 import sys
5
6 if __name__ == "__main__":
7     laplace = None
8     colorlaplace = None
9     planes = [ None, None, None ]
10     capture = None
11     
12     if len(sys.argv)==1:
13         capture = cvCreateCameraCapture( 0 )
14     elif len(sys.argv)==2 and sys.argv[1].isdigit():
15         capture = cvCreateCameraCapture( int(sys.argv[1]) )
16     elif len(sys.argv)==2:
17         capture = cvCreateFileCapture( sys.argv[1] ) 
18
19     if not capture:
20         print "Could not initialize capturing..."
21         sys.exit(-1)
22         
23     cvNamedWindow( "Laplacian", 1 )
24
25     while True:
26         frame = cvQueryFrame( capture )
27         if not frame:
28             cvWaitKey(0)
29             break
30
31         if not laplace:
32             for i in range( len(planes) ):
33                 planes[i] = cvCreateImage( cvSize(frame.width,frame.height), 8, 1 )
34             laplace = cvCreateImage( cvSize(frame.width,frame.height), IPL_DEPTH_16S, 1 )
35             colorlaplace = cvCreateImage( cvSize(frame.width,frame.height), 8, 3 )
36
37         cvSplit( frame, planes[0], planes[1], planes[2], None )
38         for plane in planes:
39             cvLaplace( plane, laplace, 3 )
40             cvConvertScaleAbs( laplace, plane, 1, 0 )
41
42         cvMerge( planes[0], planes[1], planes[2], None, colorlaplace )
43
44         cvShowImage("Laplacian", colorlaplace )
45
46         if cvWaitKey(10) != -1:
47             break
48
49     cvDestroyWindow("Laplacian")