Mercurial Hosting > traffic-intelligence
diff c/main.cpp @ 4:6509f5b1d795
updated and added makefile to compile C++ code using opencv in its directory, whipped up simple test to read the pixels in BW images
author | Nicolas Saunier <nico@confins.net> |
---|---|
date | Fri, 23 Oct 2009 00:26:47 -0400 |
parents | ace29ecfb846 |
children |
line wrap: on
line diff
--- a/c/main.cpp Thu Oct 22 16:12:09 2009 -0400 +++ b/c/main.cpp Fri Oct 23 00:26:47 2009 -0400 @@ -1,10 +1,42 @@ +#include "opencv/cv.h" +#include "opencv/highgui.h" + #include <iostream> using namespace std; +IplImage* allocateImage(const CvSize& size, const int& depth, const int& channels) { + IplImage* image = cvCreateImage(size, depth, channels); + + if (!image) { + cerr << "Error: Couldn't allocate image. Out of memory?\n" << endl; + exit(-1); + } + + return image; +} + int main(int argc, char *argv[]) { + //cout << "Hello World" << endl; + + CvCapture *inputVideo = cvCaptureFromFile(argv[1]); - cout << "Hello World" << endl; + IplImage* frame = cvQueryFrame(inputVideo); + IplImage* bwFrame = allocateImage(cvSize(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; }