Mercurial Hosting > traffic-intelligence
changeset 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 | 824c35230b73 |
files | Makefile c/Makefile c/main.cpp |
diffstat | 3 files changed, 84 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Thu Oct 22 16:12:09 2009 -0400 +++ b/Makefile Fri Oct 23 00:26:47 2009 -0400 @@ -1,3 +1,6 @@ # put test for platform -INCLUDE=./include \ No newline at end of file +INCLUDE=./include + +clibrary: + @cd $(PWD)/c && make \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/c/Makefile Fri Oct 23 00:26:47 2009 -0400 @@ -0,0 +1,47 @@ +BUILD_DIR=../bin + +CXX = g++ + +LDFLAGS = -lm +LDFLAGS += -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_unit_test_framework-mt +LDFLAGS += -lfltk + +CFLAGS = -Wall -W -Wextra +# -DUSE_OPENCV +UNAME = $(shell uname) + +ifneq ($(OPENCV), 0) + CFLAGS += -DUSE_OPENCV + LDFLAGS += -lhighgui -lcxcore -lcv -lml +endif + +ifeq ($(UNAME), Linux) + LINUX_BOOST_PREFIX = /usr/local + CFLAGS += -DLINUX + EXE_EXTENSION='' +else # windows + MINGW_HOME = 'C:\MinGW' + LDFLAGS += -mconsole -mwindows -lole32 -lwsock32 -luuid + EXE_EXTENSION='.exe' +endif + +ifeq ($(DEBUG), 1) + CFLAGS += -g -gstabs+ -DDEBUG +else + CFLAGS += -O3 --fast-math + CFLAGS += -DNDEBUG +endif + +ifeq ($(PROFILING), 1) + CFLAGS += -pg +endif + +CXXFLAGS = $(INCLUDE) $(CFLAGS) + + +default: main.o +# @echo "default" + @createdirectory.sh $(BUILD_DIR) + $(CXX) $(CFLAGS) $(LIBS) $^ -o $(BUILD_DIR)/test-pixels $(LDFLAGS) + +# $(CXX) $(CFLAGS) $(LIBS) $^ -o $(BUILD_DIR)/$@ $(LDFLAGS) \ No newline at end of file
--- 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; }