#pragma once #include "ofMain.h" #include "ofxOpenCv.h" #include "ofxKinect.h" #define MIN_TILE_SIZE 4 //has to be a divisor of 320 and 240 as the tiles are centred #define MAX_TILE_SIZE 32 //has to be a power of 2 * MIN_TILE_SIZE class offsetCvColorImage : public ofxCvColorImage { public: void extend( int w, int h ) { IplImage* temp = cvCreateImage( cvSize(w,h), IPL_DEPTH_8U, 3 ); cvCopyMakeBorder(cvImage,temp, cvPoint(0,0),IPL_BORDER_REPLICATE ); allocate( w, h ); cvCopy( temp, cvImage ); cvReleaseImage( &temp ); } }; class offsetCvGrayscaleImage : public ofxCvGrayscaleImage { public: void extend( int w, int h ) { IplImage* temp = cvCreateImage( cvSize(w,h), IPL_DEPTH_8U, 1 ); cvCopyMakeBorder(cvImage,temp, cvPoint(0,0),IPL_BORDER_REPLICATE ); allocate( w, h ); cvCopy( temp, cvImage ); cvReleaseImage( &temp ); } }; class ofApp : public ofBaseApp { public: void setup(); void update(); void draw(); void exit(); void keyPressed(int key); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void windowResized(int w, int h); void checktile(int level,int x,int y,int size); ofxKinect kinect; offsetCvColorImage colourImage; offsetCvGrayscaleImage depthImage,depthImage2; vector colourTiles; vector depthTiles; vector > numTiles; int farThreshold; int angle; int levels; int extend_w,extend_h; };