+++ /dev/null
-#!/usr/bin/python
-import sys
-from opencv.cv import *
-from opencv.highgui import *
-
-wndname = "Distance transform";
-tbarname = "Threshold";
-
-# The output images
-dist = 0;
-dist8u1 = 0;
-dist8u2 = 0;
-dist8u = 0;
-dist32s = 0;
-
-gray = 0;
-edge = 0;
-
-# define a trackbar callback
-def on_trackbar( edge_thresh ):
-
- cvThreshold( gray, edge, float(edge_thresh), float(edge_thresh), CV_THRESH_BINARY );
- #Distance transform
- cvDistTransform( edge, dist, CV_DIST_L2, CV_DIST_MASK_5, None, None );
-
- cvConvertScale( dist, dist, 5000.0, 0 );
- cvPow( dist, dist, 0.5 );
-
- cvConvertScale( dist, dist32s, 1.0, 0.5 );
- cvAndS( dist32s, cvScalarAll(255), dist32s, None );
- cvConvertScale( dist32s, dist8u1, 1, 0 );
- cvConvertScale( dist32s, dist32s, -1, 0 );
- cvAddS( dist32s, cvScalarAll(255), dist32s, None );
- cvConvertScale( dist32s, dist8u2, 1, 0 );
- cvMerge( dist8u1, dist8u2, dist8u2, None, dist8u );
- cvShowImage( wndname, dist8u );
-
-
-if __name__ == "__main__":
- edge_thresh = 100;
-
- filename = "../c/stuff.jpg"
- if len(sys.argv) > 1:
- filename = sys.argv[1]
-
- gray = cvLoadImage( filename, 0 )
- if not gray:
- print "Failed to load %s" % filename
- sys.exit(-1)
-
- # Create the output image
- dist = cvCreateImage( cvSize(gray.width,gray.height), IPL_DEPTH_32F, 1 );
- dist8u1 = cvCloneImage( gray );
- dist8u2 = cvCloneImage( gray );
- dist8u = cvCreateImage( cvSize(gray.width,gray.height), IPL_DEPTH_8U, 3 );
- dist32s = cvCreateImage( cvSize(gray.width,gray.height), IPL_DEPTH_32S, 1 );
-
- # Convert to grayscale
- edge = cvCloneImage( gray );
-
- # Create a window
- cvNamedWindow( wndname, 1 );
-
- # create a toolbar
- cvCreateTrackbar( tbarname, wndname, edge_thresh, 255, on_trackbar );
-
- # Show the image
- on_trackbar(edge_thresh);
-
- # Wait for a key stroke; the same function arranges events processing
- cvWaitKey(0);