#pragma once #include "ofMain.h" #include "ofxOpenCv.h" #include "boundary.h" #include "ofxXmlSettings.h" #include "ofxFensterManager.h" #include "ofxGui.h" #define DISPLAY_FG 1 #define DISPLAY_BG 2 #define DISPLAY_DIFF 3 #define METHOD_SIMPLE 4 #define METHOD_ACCUM 5 //12-10-12 //each area will trigger 'once and once only' ? //overall: // //tweak opencv stuff //test performance //size factor //continuous background //abs diff? class guiWindow; class testApp : public ofxFensterListener{ public: void setup(); void update(); void draw(); void exit(); void keyPressed (int key); void keyReleased(int key); void mouseMoved(int x, int y ); 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 dragEvent(ofDragInfo dragInfo); void dragEvent(ofDragInfo dragInfo, ofxFenster* win); void gotMessage(ofMessage msg); ofxXmlSettings XML; void loadSettings(string filename); void saveSettings(string filename); ofVideoGrabber vidGrabber; int gw,gh; float learningRate,startTime; cv::Mat accumulator,outmat; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayBg; ofxCvGrayscaleImage grayDiff; ofxCvContourFinder contourFinder; int mode,method; bool bLearnBakground; bool flip,invert; guiWindow *guiWin; ofxPanel gui; ofxFloatSlider vol; ofxParameter volume; ofxToggle bFlip; ofxToggle bInvert; ofxIntSlider thresh; ofxParameter threshold; // register any method of any class to an event. // the method must provide one of the following // signatures: // void method(ArgumentsType & args) // void method(const void * sender, ArgumentsType &args) // ie: // ofAddListener(addon.newIntEvent, this, &Class::method) void volumeChanged(float &v); void resetBG(bool &chg); bool bGrab; vector boundaries; int selectedBoundary; int selectedPoint; vector clicks; }; class guiWindow: public ofxFensterListener{ public: ~guiWindow(); testApp *parent; void setup(); void setParent(testApp *p); void draw(); };