Mercurial Hosting > traffic-intelligence
view c/test-pixels.cpp @ 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 | eb38637f338d |
children |
line wrap: on
line source
#include "cvutils.hpp" #include "opencv/cv.h" #include "opencv/highgui.h" #include <iostream> using namespace std; int main(int argc, char *argv[]) { //cout << "Hello World" << endl; CvCapture *inputVideo = cvCaptureFromFile(argv[1]); IplImage* frame = cvQueryFrame(inputVideo); IplImage* bwFrame = allocateImage(frame->width, frame->height, IPL_DEPTH_8U, 1); int frameNum = 0; while (frame) { if (frameNum%10 == 0) cout << frameNum << endl; cvConvertImage(frame, bwFrame); for (int i=0; i<frame->height; ++i) for (int j=0; j<frame->width; ++j) int gray = cvGetReal2D(bwFrame, i, j); frame = cvQueryFrame(inputVideo); frameNum++; } return 1; }