//-------------------------------------------------------------- void testApp::setup(){ ofSetWindowShape(1280, 480); ofSetLogLevel(OF_LOG_NOTICE); video.initGrabber(640, 480, true); imitate(mapped, video); mapped.update(); mapped.getPixelsRef().set(2,0); //take a video input image, and remap a central //set of pixels to fill the whole image for (int j=0; j<640; j++) for (int i=0; i<480; i++) { source.push_back(ofVec2f(i, j)); target.push_back(ofVec2f(i, j)); } ready = false; }
//----------- ModuleImageAnalyzer::ModuleImageAnalyzer() : Learn() { setGuiInputsVisible(false); width = 320; height = 240; stepSize = 32; numBins = 30; vLerpRate = 0.2; if (mode == 0) { cam.initGrabber(width, height); imitate(previous, cam); imitate(diff, cam); frameDiffCol.resize(cam.getWidth()); ySteps = cam.getHeight() / stepSize; xSteps = cam.getWidth() / stepSize; } else if (mode == 1) { player.loadMovie("/Users/Gene/Desktop/german_train_320x240.mp4"); player.setLoopState(OF_LOOP_NORMAL); player.play(); imitate(previous, player); imitate(diff, player); frameDiffCol.resize(player.getWidth()); ySteps = cam.getHeight() / stepSize; xSteps = cam.getWidth() / stepSize; } else if (mode == 2) { ofImage img; img.loadImage("/Users/Gene/Code/openFrameworks/examples/graphics/imageLoaderExample/bin/data/images/bikers.jpg"); img.resize(width, height); image.setFromPixels(img.getPixels(), width, height); imitate(previous, image); imitate(diff, image); frameDiffCol.resize(image.getWidth()); ySteps = cam.getHeight() / stepSize; xSteps = cam.getWidth() / stepSize; } control.setName("ImageAnalyzer"); control.addParameter("velocity lerp", &vLerpRate, 0.0f, 1.0f); control.addParameter("bins", &numBins, 6, 64); // set up materials mesh.clear(); mesh.setMode(OF_PRIMITIVE_TRIANGLES); for(int y = 0; y < ySteps; y++) { for(int x = 0; x < xSteps; x++) { mesh.addVertex(ofVec2f(x * stepSize, y * stepSize)); mesh.addTexCoord(ofVec2f(x * stepSize, y * stepSize)); } } for(int y = 0; y + 1 < ySteps; y++) { for(int x = 0; x + 1 < xSteps; x++) { int nw = y * xSteps + x; int ne = nw + 1; int sw = nw + xSteps; int se = sw + 1; mesh.addIndex(nw); mesh.addIndex(ne); mesh.addIndex(se); mesh.addIndex(nw); mesh.addIndex(se); mesh.addIndex(sw); } } // setup histograms rgb.allocate(width, height); hsv.allocate(width, height); r.allocate(width, height); g.allocate(width, height); b.allocate(width, height); h.allocate(width, height); s.allocate(width, height); v.allocate(width, height); addInput("frameDiffTotal", &frameDiffTotal, 0.0f, 8000.0f); addInput("frameDiffTotalRed", &frameDiffTotalRed, 0.0f, 3000.0f); addInput("frameDiffTotalGreen", &frameDiffTotalGreen, 0.0f, 3000.0f); addInput("frameDiffTotalBlue", &frameDiffTotalBlue, 0.0f, 3000.0f); }