Mercurial > hg > nsaunier > traffic-intelligence
annotate scripts/play-video.py @ 372:349eb1e09f45
Cleaned the methods/functions indicating if a point is in a polygon
In general, shapely should be used, especially for lots of points:
from shapely.geometry import Polygon, Point
poly = Polygon(array([[0,0],[0,1],[1,1],[1,0]]))
p = Point(0.5,0.5)
poly.contains(p) -> returns True
poly.contains(Point(-1,-1)) -> returns False
You can convert a moving.Point to a shapely point: p = moving.Point(1,2) p.asShapely() returns the equivalent shapely point
If you have several points to test, use moving.pointsInPolygon(points, polygon) where points are moving.Point and polygon is a shapely polygon.
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Tue, 16 Jul 2013 17:00:17 -0400 |
| parents | 1d90e9080cb2 |
| children | 1917db662aa7 |
| rev | line source |
|---|---|
|
305
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 import sys,getopt |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 import cvutils |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 options, args = getopt.getopt(sys.argv[1:], 'hi:f:',['help', 'fps=']) |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 options = dict(options) |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
8 print options |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 if '--help' in options.keys() or '-h' in options.keys() or len(sys.argv) == 1: |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 print('Usage: '+sys.argv[0]+' --help|-h -i video-filename [-f first_frame] [--fps frame_rate]') |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 sys.exit() |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 firstFrameNum = 0 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 if '-f' in options.keys(): |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
16 firstFrameNum = int(options['-f']) |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
17 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
18 frameRate = -1 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
19 if '--fps' in options.keys(): |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 frameRate = int(options['--fps']) |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
21 |
|
ca9131968bce
added sample to replay video
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 cvutils.playVideo(options['-i'], firstFrameNum, frameRate) |
