commit 61f061fc0b67113f914d051d7837694701261990
parent 4b4fe83c91e2a734cb518ccc57ba9735f143cd73
Author: Stefan Koch <taikano@lavabit.com>
Date: Tue, 11 Jun 2013 10:56:21 +0200
removed old track file
Diffstat:
D | track.py | | | 84 | ------------------------------------------------------------------------------- |
1 file changed, 0 insertions(+), 84 deletions(-)
diff --git a/track.py b/track.py
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-
-import cv
-
-class Target:
-
- def __init__(self):
- self.capture = cv.CaptureFromCAM(0)
- cv.NamedWindow("Target", 1)
-
- def run(self):
- # Capture first frame to get size
- frame = cv.QueryFrame(self.capture)
- frame_size = cv.GetSize(frame)
- color_image = cv.CreateImage(cv.GetSize(frame), 8, 3)
- grey_image = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_8U, 1)
- moving_average = cv.CreateImage(cv.GetSize(frame), cv.IPL_DEPTH_32F, 3)
-
- first = True
-
- while True:
- closest_to_left = cv.GetSize(frame)[0]
- closest_to_right = cv.GetSize(frame)[1]
-
- color_image = cv.QueryFrame(self.capture)
-
- # Smooth to get rid of false positives
- cv.Smooth(color_image, color_image, cv.CV_GAUSSIAN, 3, 0)
-
- if first:
- difference = cv.CloneImage(color_image)
- temp = cv.CloneImage(color_image)
- cv.ConvertScale(color_image, moving_average, 1.0, 0.0)
- first = False
- else:
- cv.RunningAvg(color_image, moving_average, 0.020, None)
-
- # Convert the scale of the moving average.
- cv.ConvertScale(moving_average, temp, 1.0, 0.0)
-
- # Minus the current frame from the moving average.
- cv.AbsDiff(color_image, temp, difference)
-
- # Convert the image to grayscale.
- cv.CvtColor(difference, grey_image, cv.CV_RGB2GRAY)
-
- # Convert the image to black and white.
- cv.Threshold(grey_image, grey_image, 70, 255, cv.CV_THRESH_BINARY)
-
- # Dilate and erode to get people blobs
- cv.Dilate(grey_image, grey_image, None, 18)
- cv.Erode(grey_image, grey_image, None, 10)
-
- storage = cv.CreateMemStorage(0)
- contour = cv.FindContours(grey_image, storage, cv.CV_RETR_CCOMP, cv.CV_CHAIN_APPROX_SIMPLE)
- points = []
-
- while contour:
- bound_rect = cv.BoundingRect(list(contour))
- contour = contour.h_next()
-
- pt1 = (bound_rect[0], bound_rect[1])
- pt2 = (bound_rect[0] + bound_rect[2], bound_rect[1] + bound_rect[3])
- points.append(pt1)
- points.append(pt2)
- cv.Rectangle(color_image, pt1, pt2, cv.CV_RGB(255,0,0), 1)
-
- if len(points):
- center_point = reduce(lambda a, b: ((a[0] + b[0]) / 2, (a[1] + b[1]) / 2), points)
- cv.Circle(color_image, center_point, 40, cv.CV_RGB(255, 255, 255), 1)
- cv.Circle(color_image, center_point, 30, cv.CV_RGB(255, 100, 0), 1)
- cv.Circle(color_image, center_point, 20, cv.CV_RGB(255, 255, 255), 1)
- cv.Circle(color_image, center_point, 10, cv.CV_RGB(255, 100, 0), 1)
-
- cv.ShowImage("Target", color_image)
-
- # Listen for ESC key
- c = cv.WaitKey(7) % 0x100
- if c == 27:
- break
-
-if __name__=="__main__":
- t = Target()
- t.run()