Mercurial > hg > nsaunier > traffic-intelligence
comparison python/cvutils.py @ 227:b7612c6d5702
cleaned the code
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Wed, 27 Jun 2012 09:52:06 -0400 |
| parents | 91197f6a03fe |
| children | ab1a11176d7b |
comparison
equal
deleted
inserted
replaced
| 226:91197f6a03fe | 227:b7612c6d5702 |
|---|---|
| 90 if lastCoordinate != None and lastCoordinate >=0: | 90 if lastCoordinate != None and lastCoordinate >=0: |
| 91 last = min(positions.length()-1, lastCoordinate) | 91 last = min(positions.length()-1, lastCoordinate) |
| 92 for i in range(0, last-1): | 92 for i in range(0, last-1): |
| 93 cv2.line(img, positions[i].asint().astuple(), positions[i+1].asint().astuple(), color) | 93 cv2.line(img, positions[i].asint().astuple(), positions[i+1].asint().astuple(), color) |
| 94 | 94 |
| 95 def playVideo(filename, firstFrame = 0): | 95 def playVideo(filename, firstFrameNum = 0): |
| 96 '''Plays the video''' | 96 '''Plays the video''' |
| 97 capture = cv2.VideoCapture(filename) | 97 capture = cv2.VideoCapture(filename) |
| 98 if capture.isOpened(): | 98 if capture.isOpened(): |
| 99 key = -1 | 99 key = -1 |
| 100 frameNum = 1 | 100 ret = True |
| 101 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrame) | 101 frameNum = firstFrameNum |
| 102 while key!= 113: # 'q' | 102 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) |
| 103 while ret and key!= 113: # 'q' | |
| 103 ret, img = capture.read() | 104 ret, img = capture.read() |
| 104 if ret: | 105 if ret: |
| 105 print('frame {0}'.format(frameNum)) | 106 print('frame {0}'.format(frameNum)) |
| 106 frameNum+=1 | 107 frameNum+=1 |
| 107 cv2.imshow('frame', img) | 108 cv2.imshow('frame', img) |
| 126 cv2.imwrite('image{0:04d}.png'.format(numImg), img) | 127 cv2.imwrite('image{0:04d}.png'.format(numImg), img) |
| 127 else: | 128 else: |
| 128 images.append(img) | 129 images.append(img) |
| 129 return images | 130 return images |
| 130 | 131 |
| 131 def displayTrajectories(videoFilename, objects, homography = None): | 132 def displayTrajectories(videoFilename, objects, homography = None, firstFrameNum = 0): |
| 132 '''Displays the objects overlaid frame by frame over the video ''' | 133 '''Displays the objects overlaid frame by frame over the video ''' |
| 133 capture = cv2.VideoCapture(videoFilename) | 134 capture = cv2.VideoCapture(videoFilename) |
| 134 if capture.isOpened(): | 135 if capture.isOpened(): |
| 135 key = -1 | 136 key = -1 |
| 136 frameNum = 0 | 137 ret = True |
| 137 while key!= 113: # 'q' | 138 frameNum = firstFrameNum |
| 139 capture.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, firstFrameNum) | |
| 140 while ret and key!= 113: # 'q' | |
| 141 print('capture') | |
| 138 ret, img = capture.read() | 142 ret, img = capture.read() |
| 139 if ret: | 143 if ret: |
| 140 print(frameNum) | 144 print('frame {0}'.format(frameNum)) |
| 141 for obj in objects: | 145 for obj in objects: |
| 142 if obj.existsAtInstant(frameNum): | 146 if obj.existsAtInstant(frameNum): |
| 143 if obj.getFirstInstant() == frameNum: | 147 if obj.getFirstInstant() == frameNum: |
| 144 if homography != None: | 148 if homography != None: |
| 145 obj.projectedPositions = obj.positions.project(homography) | 149 obj.projectedPositions = obj.positions.project(homography) |
