Mercurial > hg > nsaunier > traffic-intelligence
comparison python/cvutils.py @ 515:727e3c529519
renamed all draw functions to plot for consistency
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 06 Jun 2014 14:10:42 -0400 |
| parents | ad518f0c3218 |
| children | fd9641cbd24b |
comparison
equal
deleted
inserted
replaced
| 514:1ba618fb0f70 | 515:727e3c529519 |
|---|---|
| 34 return chr(key&255)== 'q' or chr(key&255) == 'Q' | 34 return chr(key&255)== 'q' or chr(key&255) == 'Q' |
| 35 | 35 |
| 36 def saveKey(key): | 36 def saveKey(key): |
| 37 return chr(key&255) == 's' | 37 return chr(key&255) == 's' |
| 38 | 38 |
| 39 def drawLines(filename, origins, destinations, w = 1, resultFilename='image.png'): | 39 def plotLines(filename, origins, destinations, w = 1, resultFilename='image.png'): |
| 40 '''Draws lines over the image ''' | 40 '''Draws lines over the image ''' |
| 41 import Image, ImageDraw # PIL | 41 import Image, ImageDraw # PIL |
| 42 | 42 |
| 43 img = Image.open(filename) | 43 img = Image.open(filename) |
| 44 | 44 |
| 46 #draw = aggdraw.Draw(img) | 46 #draw = aggdraw.Draw(img) |
| 47 #pen = aggdraw.Pen("red", width) | 47 #pen = aggdraw.Pen("red", width) |
| 48 for p1, p2 in zip(origins, destinations): | 48 for p1, p2 in zip(origins, destinations): |
| 49 draw.line([p1.x, p1.y, p2.x, p2.y], width = w, fill = (256,0,0)) | 49 draw.line([p1.x, p1.y, p2.x, p2.y], width = w, fill = (256,0,0)) |
| 50 #draw.line([p1.x, p1.y, p2.x, p2.y], pen) | 50 #draw.line([p1.x, p1.y, p2.x, p2.y], pen) |
| 51 del draw | 51 del draw |
| 52 | 52 |
| 53 #out = utils.openCheck(resultFilename) | 53 #out = utils.openCheck(resultFilename) |
| 54 img.save(resultFilename) | 54 img.save(resultFilename) |
| 55 | 55 |
| 56 def matlab2PointCorrespondences(filename): | 56 def matlab2PointCorrespondences(filename): |
| 91 for i in range(cvmat.rows): | 91 for i in range(cvmat.rows): |
| 92 for j in range(cvmat.cols): | 92 for j in range(cvmat.cols): |
| 93 cvmat[i,j] = a[i,j] | 93 cvmat[i,j] = a[i,j] |
| 94 return cvmat | 94 return cvmat |
| 95 | 95 |
| 96 def draw(img, positions, color, lastCoordinate = None): | 96 def cvPlot(img, positions, color, lastCoordinate = None): |
| 97 last = lastCoordinate+1 | 97 last = lastCoordinate+1 |
| 98 if lastCoordinate != None and lastCoordinate >=0: | 98 if lastCoordinate != None and lastCoordinate >=0: |
| 99 last = min(positions.length()-1, lastCoordinate) | 99 last = min(positions.length()-1, lastCoordinate) |
| 100 for i in range(0, last-1): | 100 for i in range(0, last-1): |
| 101 cv2.line(img, positions[i].asint().astuple(), positions[i+1].asint().astuple(), color) | 101 cv2.line(img, positions[i].asint().astuple(), positions[i+1].asint().astuple(), color) |
| 245 if not hasattr(obj, 'projectedPositions'): | 245 if not hasattr(obj, 'projectedPositions'): |
| 246 if homography != None: | 246 if homography != None: |
| 247 obj.projectedPositions = obj.positions.project(homography) | 247 obj.projectedPositions = obj.positions.project(homography) |
| 248 else: | 248 else: |
| 249 obj.projectedPositions = obj.positions | 249 obj.projectedPositions = obj.positions |
| 250 draw(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant()) | 250 cvPlot(img, obj.projectedPositions, cvRed, frameNum-obj.getFirstInstant()) |
| 251 if frameNum in boundingBoxes.keys(): | 251 if frameNum in boundingBoxes.keys(): |
| 252 for rect in boundingBoxes[frameNum]: | 252 for rect in boundingBoxes[frameNum]: |
| 253 cv2.rectangle(img, rect[0].asint().astuple(), rect[1].asint().astuple(), cvRed) | 253 cv2.rectangle(img, rect[0].asint().astuple(), rect[1].asint().astuple(), cvRed) |
| 254 elif obj.features != None: | 254 elif obj.features != None: |
| 255 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height) | 255 imgcrop, yCropMin, yCropMax, xCropMin, xCropMax = imageBox(img, obj, frameNum, homography, width, height) |
