Mercurial Hosting > traffic-intelligence
view python/cvutils.py @ 28:9ae709a2e8d0
rearranged code
author | Nicolas Saunier <nico@confins.net> |
---|---|
date | Sat, 30 Jan 2010 21:42:53 -0500 |
parents | |
children | be3ae926e4e8 |
line wrap: on
line source
#! /usr/bin/env python '''Image/Video utilities''' import Image, ImageDraw # PIL import aggdraw # agg on top of PIL (antialiased drawing) from moving import Point #import utils __metaclass__ = type def drawLines(filename, origins, destinations, w = 1, resultFilename='image.png'): '''Draws lines over the image ''' img = Image.open(filename) draw = ImageDraw.Draw(img) #draw = aggdraw.Draw(img) #pen = aggdraw.Pen("red", width) for p1, p2 in zip(origins, destinations): draw.line([p1.x, p1.y, p2.x, p2.y], width = w, fill = (256,0,0)) #draw.line([p1.x, p1.y, p2.x, p2.y], pen) del draw #out = utils.openCheck(resultFilename) img.save(resultFilename) def project(homography, p): '''Returns the coordinates of the projection of the point p through homography''' from numpy.core._dotblas import dot from numpy.core.multiarray import array from numpy.lib.function_base import insert if (homography!=None) and (len(homography)>0): pAugmented = insert(array(p.aslist()), [2],[1], axis=0) tmp = dot(homography, pAugmented) return Point(tmp[0]/tmp[2], tmp[1]/tmp[2]) else: return p def projectTrajectory(homography, trajectory): '''Projects a series of points in the format [[x1, x2, ...], [y1, y2, ...]] Warning: not optimized, calls project()''' projected = [[],[]] for x, y in zip(trajectory[0], trajectory[1]): p = [x,y] pp = project(homography, p) projected[0].append(pp[0]) projected[1].append(pp[1]) return projected