"atomic bomb" commit. Reorganized OpenCV directory structure
This commit is contained in:
71
samples/swig_python/distrans.py
Executable file
71
samples/swig_python/distrans.py
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/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);
|
Reference in New Issue
Block a user