SlideShare a Scribd company logo
#ifndef _TEST_APP
#define _TEST_APP

#include "ofMain.h"
#include "ofxOpenCv.h"

class testApp : public ofBaseApp {

public:
    void setup();
    void update();
    void draw();
    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);
    ofVideoGrabber vidGrabber;
    ofxCvColorImage colorImg;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0,0,0);

       vidGrabber.setVerbose(true);
       vidGrabber.initGrabber(320,240);

       colorImg.allocate(320,240);
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();

!   if (bNewFrame){
         colorImg.setFromPixels(vidGrabber.getPixels(), 320,240);
!   }
}

void testApp::draw(){
    colorImg.draw(20,20);
}

...(      )...
#ifndef _TEST_APP
#define _TEST_APP

#include "ofMain.h"
#include "ofxOpenCv.h"

class testApp : public ofBaseApp {

public:
    void   setup();
    void   update();
    void   draw();
    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);

     ofVideoGrabber vidGrabber;
     ofxCvColorImage colorImg;
     ofxCvGrayscaleImage grayImage;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0, 0, 0);

    vidGrabber.setVerbose(true);
    vidGrabber.initGrabber(320,240);

    colorImg.allocate(320,240);
    grayImage.allocate(320,240);
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();
!   if (bNewFrame){
        colorImg.setFromPixels(vidGrabber.getPixels(), 320,240);
        grayImage = colorImg;
!   }
}

void testApp::draw(){
    ofSetColor(0xffffff);
     colorImg.draw(20,20);
     grayImage.draw(360,20);
}
...(    )...
#ifndef _TEST_APP
#define _TEST_APP
#include "ofMain.h"
#include "ofxOpenCv.h"

class testApp : public ofBaseApp {

public:
    void setup();
    void update();
    void draw();
    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);
    ofVideoGrabber vidGrabber;
    ofxCvColorImage colorImg;
    ofxCvGrayscaleImage grayImage;
    ofxCvGrayscaleImage grayBg;
    ofxCvGrayscaleImage grayDiff;
    bool bLearnBakground;
    int threshold;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0, 0, 0);
    ofEnableAlphaBlending();

    vidGrabber.setVerbose(true);
    vidGrabber.initGrabber(320,240);

     colorImg.allocate(320,240);
     grayImage.allocate(320,240);
     grayBg.allocate(320,240);
!   grayDiff.allocate(320,240);

    bLearnBakground = true;
    threshold = 100;
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();

!   if (bNewFrame){
         colorImg.setFromPixels(vidGrabber.getPixels(), 320,240);
         grayImage = colorImg;
         if (bLearnBakground == true){
!   !    !   grayBg = grayImage;
!   !    !   bLearnBakground = false;
!   !    }
        grayDiff.absDiff(grayBg, grayImage);
        grayDiff.threshold(threshold);
!   }
}

void testApp::draw(){
    ofNoFill();
    ofSetColor(0xffffff);

     colorImg.draw(20,20);
     grayImage.draw(360,20);
     grayBg.draw(20,280);
!   grayDiff.draw(360,280);

     ofSetColor(0xffffff);
!   char reportStr[1024];
!   sprintf(reportStr, "threshold %i (press: +/-)", threshold);
!   ofDrawBitmapString(reportStr, 20, 600);
}
void testApp::keyPressed (int key){
! switch (key){
! !      case ' ':
! !      !   bLearnBakground = true;
! !      !   break;
        case '+':
! !      !   threshold ++;
! !      !   if (threshold > 255) threshold = 255;
! !      !   break;
! !      case '-':
! !      !   threshold --;
! !      !   if (threshold < 0) threshold = 0;
! !      !   break;
! }
}

...(   )...
#ifndef _TEST_APP
#define _TEST_APP
#include "ofMain.h"
#include "ofxOpenCv.h"

class testApp : public ofBaseApp {
public:
    void setup();
    void update();
    void draw();
    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);
    ofVideoGrabber vidGrabber;
    ofxCvColorImage colorImg;
    ofxCvGrayscaleImage grayImage;
    ofxCvGrayscaleImage grayBg;
    ofxCvGrayscaleImage grayDiff;
    ofxCvContourFinder contourFinder;
    bool bLearnBakground;
    int threshold;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0, 0, 0);
    ofEnableAlphaBlending();

    vidGrabber.setVerbose(true);
    vidGrabber.initGrabber(320,240);

    colorImg.allocate(320,240);
    grayImage.allocate(320,240);
    grayBg.allocate(320,240);
!   grayDiff.allocate(320,240);

    bLearnBakground = true;
    threshold = 100;
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();

!   if (bNewFrame){
        colorImg.setFromPixels(vidGrabber.getPixels(), 320,240);
        grayImage = colorImg;
        if (bLearnBakground == true){
!   !     !   grayBg = grayImage;
!   !    !    bLearnBakground = false;
!   !    }
        grayDiff.absDiff(grayBg, grayImage);
        grayDiff.threshold(threshold);
        contourFinder.findContours(grayDiff, 20, (340*240)/3, 10, true);
!   }
}

void testApp::draw(){
    ofNoFill();
    ofSetColor(0xffffff);

    colorImg.draw(20,20);
    grayImage.draw(360,20);
    grayBg.draw(20,280);
!   grayDiff.draw(360,280);

    for (int i = 0; i < contourFinder.nBlobs; i++){
        contourFinder.blobs[i].draw(360,540);
    }
    ofSetColor(0xffffff);
!   char reportStr[1024];
!   sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i",
threshold, contourFinder.nBlobs);
!   ofDrawBitmapString(reportStr, 20, 600);
}
void testApp::keyPressed (int key){
!   switch (key){
!   !     case ' ':
!   !     !    bLearnBakground = true;
!   !     !    break;
!   !     case '+':
!   !     !    threshold ++;
!   !     !    if (threshold > 255) threshold = 255;
!   !     !    break;
!   !     case '-':
!   !     !    threshold --;
!   !     !    if (threshold < 0) threshold = 0;
!   !     !    break;
!   }
}

...(   )...
#ifndef _TEST_APP
#define _TEST_APP
#include "ofMain.h"
#include "ofxOpenCv.h"

class testApp : public ofBaseApp {
public:
    void setup();
    void update();
    void draw();
    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);
    ofVideoGrabber vidGrabber;
    ofxCvColorImage colorImg;
    ofxCvGrayscaleImage grayImage;
    ofxCvGrayscaleImage grayBg;
    ofxCvGrayscaleImage grayDiff;
    ofxCvContourFinder contourFinder;
    bool bLearnBakground;
    int threshold;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0, 0, 0);
    ofEnableAlphaBlending();

    vidGrabber.setVerbose(true);
    vidGrabber.initGrabber(320,240);
    colorImg.allocate(320,240);
    grayImage.allocate(320,240);
    grayBg.allocate(320,240);
    grayDiff.allocate(320,240);
    bLearnBakground = true;
    threshold = 100;
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();

!   if (bNewFrame){
        colorImg.setFromPixels(vidGrabber.getPixels(), 320,240);
        grayImage = colorImg;
        if (bLearnBakground == true){
!   !     !   grayBg = grayImage;
!   !     !   bLearnBakground = false;
!   !     }
grayDiff.absDiff(grayBg, grayImage);
        grayDiff.threshold(threshold);
        contourFinder.findContours(grayDiff, 20, (340*240)/3, 10, true);
!   }
}

void testApp::draw(){
    ofFill();
    ofSetColor(0, 31, 255, 200);
    for( int i=0; i<(int)contourFinder.blobs.size(); i++ ) {
!   !    ofBeginShape();
!   !    for( int j=0; j<contourFinder.blobs[i].nPts; j++ ) {
!   !    !    ofVertex( contourFinder.blobs[i].pts[j].x * 4,
contourFinder.blobs[i].pts[j].y * 4 );
!   !    }
!   !    ofEndShape();
!   }

    ofSetColor(0xffffff);
!   char reportStr[1024];
!   sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i",
threshold, contourFinder.nBlobs);
!   ofDrawBitmapString(reportStr, 20, 10);
}
void testApp::keyPressed (int key){
!   switch (key){
!   !     case ' ':
!   !     !    bLearnBakground = true;
!   !     !    break;
        case '+':
!   !     !    threshold ++;
!   !     !    if (threshold > 255) threshold = 255;
!   !     !    break;
!   !     case '-':
!   !     !    threshold --;
!   !     !    if (threshold < 0) threshold = 0;
!   !     !    break;
!   }
}

...(   )...
#ifndef _TEST_APP
#define _TEST_APP

#include   "ofMain.h"
#include   "ofxOpenCv.h"
#include   "ofxBox2d.h"
#include   "ofxVectorMath.h"
#include   "CustomCircle.h"

class testApp : public ofBaseApp {

public:
    void setup();
    void update();
    void draw();

    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);

    ofVideoGrabber vidGrabber;
    ofxCvColorImage colorImg;
    ofxCvGrayscaleImage grayImage;
    ofxCvGrayscaleImage grayBg;
ofxCvGrayscaleImage grayDiff;
     ofxCvContourFinder contourFinder;

     bool bLearnBakground;
     int threshold;

     ofxBox2d box2d;
     vector <ofxBox2dLine> lineStrips;
     vector <ofxBox2dPolygon> polygons;
     vector <CustomCircle> circles;
};

#endif
#include "testApp.h"

void testApp::setup(){
    ofBackground(0, 0, 0);
    ofEnableAlphaBlending();
    ofSetFrameRate(30);

    vidGrabber.setVerbose(true);
    vidGrabber.initGrabber(320,240);

    colorImg.allocate(320,240);
    grayImage.allocate(320,240);
    grayBg.allocate(320,240);
!   grayDiff.allocate(320,240);

    bLearnBakground = true;
    threshold = 20;

    box2d.init();
!   box2d.setGravity(0, 10);
    box2d.createBounds();
!   box2d.setFPS(30.0);
}

void testApp::update(){
    bool bNewFrame = false;
    vidGrabber.grabFrame();
    bNewFrame = vidGrabber.isFrameNew();
!   if (bNewFrame){
        colorImg.setFromPixels(vidGrabber.getPixels(),320,240);
        grayImage = colorImg;
        if (bLearnBakground == true){
!   !     !   grayBg = grayImage;
!   !     !   bLearnBakground = false;
!   !     }
        grayDiff.absDiff(grayBg, grayImage);
        grayDiff.threshold(threshold);
        contourFinder.findContours(grayDiff, 40, (ofGetWidth()*ofGetHeight())/
3, 5, false);
        for (int i=0; i<lineStrips.size(); i++) {
            lineStrips[i].clear();
        }
        for( int i=0; i<(int)contourFinder.blobs.size(); i++ ) {
            ofxBox2dLine l;
            l.setPhysics(1.0, 0.8, 0.5);
            l.setWorld(box2d.getWorld());
            for( int j=0; j<contourFinder.blobs[i].nPts; j++ ) {
                l.addPoint(contourFinder.blobs[i].pts[j].x*ofGetWidth()/320,
contourFinder.blobs[i].pts[j].y*ofGetHeight()/240);
            }
            l.createShape();
            lineStrips.push_back(l);
        }
!   }
    box2d.update();
}
void testApp::draw(){
    for (int i=0; i<lineStrips.size(); i++) {
        lineStrips[i].draw();
    }

    //circles
    for(int i=0; i<circles.size(); i++) {
        circles[i].draw();
    }

    ofSetColor(255, 255, 255);
!   char reportStr[1024];
!   sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i",
threshold, contourFinder.nBlobs);
!   ofDrawBitmapString(reportStr, 20, 10);
}

void testApp::keyPressed (int key){
!   switch (key){
!   !     case ' ':
!   !     !    bLearnBakground = true;
!   !     !    break;
        case '+':
!   !     !    threshold ++;
!   !     !    if (threshold > 255) threshold = 255;
!   !     !    break;
!   !    case '-':
!   !    !    threshold --;
!   !    !    if (threshold < 0) threshold = 0;
!   !    !    break;
        case 'f':
            ofSetFullscreen(true);
            break;
        case 'c':
            float r = ofRandom(20, 40); //
            CustomCircle c; //CustomCircle
            c.setPhysics(1.0, 0.8, 0.5); //
            c.setup(box2d.getWorld(), mouseX, mouseY, r); //
            circles.push_back(c); //          circles
            break;
!   }
}

void testApp::keyReleased(int key){
}

void testApp::mouseMoved(int x, int y){
}

void testApp::mouseDragged(int x, int y, int button){
}
void testApp::mousePressed(int x, int y, int button){
}

void testApp::mouseReleased(int x, int y, int button){
}

void testApp::windowResized(int w, int h){
}
#include "ofxVectorMath.h"
#include "ofxBox2d.h"

//ofxBox2dCircle             CustomCircle
class CustomCircle : public ofxBox2dCircle {
public:
    void draw(); //
};
#include "CustomCircle.h"

void CustomCircle::draw()
{
    float radius = getRadius(); //
    glPushMatrix(); //
    glTranslatef(getPosition().x, getPosition().y, 0); //
    ofFill(); //
    ofSetColor(31,127,255,100); //   1
    ofCircle(0, 0, radius);!// 1
    ofSetColor(31,127,255,200); //   2
    ofCircle(0, 0, radius*0.7); //   2
    glPopMatrix(); //
}
Sbaw091020

More Related Content

What's hot

F
FF
C program to implement linked list using array abstract data type
C program to implement linked list using array abstract data typeC program to implement linked list using array abstract data type
C program to implement linked list using array abstract data type
loyola ICAM college of engineering and technology
 
YQL and YUI - Javascript from server to user
YQL and YUI - Javascript from server to userYQL and YUI - Javascript from server to user
YQL and YUI - Javascript from server to user
Tom Croucher
 
[SI] Ada Lovelace Day 2014 - Tampon Run
[SI] Ada Lovelace Day 2014  - Tampon Run[SI] Ada Lovelace Day 2014  - Tampon Run
[SI] Ada Lovelace Day 2014 - Tampon Run
Maja Kraljič
 
Avl tree
Avl treeAvl tree
Data Structures : array operations in c program
Data Structures : array operations in c program Data Structures : array operations in c program
Data Structures : array operations in c program
Raghavendra Narayan
 
Daa practicals
Daa practicalsDaa practicals
Daa practicals
Rekha Yadav
 
Final ds record
Final ds recordFinal ds record
Final ds record
Ganisius Ganish
 
Graphics point clipping c program
Graphics point clipping c programGraphics point clipping c program
Graphics point clipping c program
Dr.M.Karthika parthasarathy
 
C PROGRAMS
C PROGRAMSC PROGRAMS
C programms
C programmsC programms
C programms
Mukund Gandrakota
 
Datastructures asignment
Datastructures asignmentDatastructures asignment
Datastructures asignment
sreekanth3dce
 
Data Structures Using C Practical File
Data Structures Using C Practical File Data Structures Using C Practical File
Data Structures Using C Practical File
Rahul Chugh
 
Array imp of list
Array imp of listArray imp of list
Array imp of list
Elavarasi K
 
Drawing on canvas
Drawing on canvasDrawing on canvas
Drawing on canvas
suitzero
 
c-programming-using-pointers
c-programming-using-pointersc-programming-using-pointers
c-programming-using-pointers
Sushil Mishra
 
Hangman Game Programming in C (coding)
Hangman Game Programming in C (coding)Hangman Game Programming in C (coding)
Hangman Game Programming in C (coding)
hasan0812
 
TC7S08F PSpice Model (Free SPICE Model)
TC7S08F PSpice Model  (Free SPICE Model)TC7S08F PSpice Model  (Free SPICE Model)
TC7S08F PSpice Model (Free SPICE Model)
Tsuyoshi Horigome
 
Os lab 1st mid
Os lab 1st midOs lab 1st mid
Os lab 1st mid
Murali Kummitha
 
Programs for Operating System
Programs for Operating SystemPrograms for Operating System
Programs for Operating System
LPU
 

What's hot (20)

F
FF
F
 
C program to implement linked list using array abstract data type
C program to implement linked list using array abstract data typeC program to implement linked list using array abstract data type
C program to implement linked list using array abstract data type
 
YQL and YUI - Javascript from server to user
YQL and YUI - Javascript from server to userYQL and YUI - Javascript from server to user
YQL and YUI - Javascript from server to user
 
[SI] Ada Lovelace Day 2014 - Tampon Run
[SI] Ada Lovelace Day 2014  - Tampon Run[SI] Ada Lovelace Day 2014  - Tampon Run
[SI] Ada Lovelace Day 2014 - Tampon Run
 
Avl tree
Avl treeAvl tree
Avl tree
 
Data Structures : array operations in c program
Data Structures : array operations in c program Data Structures : array operations in c program
Data Structures : array operations in c program
 
Daa practicals
Daa practicalsDaa practicals
Daa practicals
 
Final ds record
Final ds recordFinal ds record
Final ds record
 
Graphics point clipping c program
Graphics point clipping c programGraphics point clipping c program
Graphics point clipping c program
 
C PROGRAMS
C PROGRAMSC PROGRAMS
C PROGRAMS
 
C programms
C programmsC programms
C programms
 
Datastructures asignment
Datastructures asignmentDatastructures asignment
Datastructures asignment
 
Data Structures Using C Practical File
Data Structures Using C Practical File Data Structures Using C Practical File
Data Structures Using C Practical File
 
Array imp of list
Array imp of listArray imp of list
Array imp of list
 
Drawing on canvas
Drawing on canvasDrawing on canvas
Drawing on canvas
 
c-programming-using-pointers
c-programming-using-pointersc-programming-using-pointers
c-programming-using-pointers
 
Hangman Game Programming in C (coding)
Hangman Game Programming in C (coding)Hangman Game Programming in C (coding)
Hangman Game Programming in C (coding)
 
TC7S08F PSpice Model (Free SPICE Model)
TC7S08F PSpice Model  (Free SPICE Model)TC7S08F PSpice Model  (Free SPICE Model)
TC7S08F PSpice Model (Free SPICE Model)
 
Os lab 1st mid
Os lab 1st midOs lab 1st mid
Os lab 1st mid
 
Programs for Operating System
Programs for Operating SystemPrograms for Operating System
Programs for Operating System
 

Viewers also liked

Student Success Statements
Student Success StatementsStudent Success Statements
Student Success Statements
Atheon13
 
INTO THE WILD
INTO THE WILDINTO THE WILD
INTO THE WILD
yxr-i
 
трагедия ходжалы
трагедия ходжалытрагедия ходжалы
трагедия ходжалыILIKO82
 
Aleksandra Popovic Inforum 2009
Aleksandra Popovic Inforum 2009Aleksandra Popovic Inforum 2009
Aleksandra Popovic Inforum 2009
Aleksandra Popovic
 
WEb 2.0 En educación
WEb 2.0 En educaciónWEb 2.0 En educación
WEb 2.0 En educación
jorglopez
 
Gis guidelines for ep
Gis guidelines for epGis guidelines for ep
Gis guidelines for ep
Christelle Bredou
 
論文の図表レイアウト例
論文の図表レイアウト例論文の図表レイアウト例
論文の図表レイアウト例
Sunao Hara
 
Semana de Conhecimentos Gerais 2013-53
Semana de Conhecimentos Gerais 2013-53Semana de Conhecimentos Gerais 2013-53
Semana de Conhecimentos Gerais 2013-53
Rubens Junior BR1
 
Lezione Sui Blog
Lezione  Sui BlogLezione  Sui Blog
Lezione Sui Blog
mauropenchini
 
Transverse fracture presentation bio 120
Transverse fracture presentation bio 120Transverse fracture presentation bio 120
Transverse fracture presentation bio 120
sduncan26
 
Los sistemas de informacion
Los sistemas de informacionLos sistemas de informacion
Los sistemas de informacion
guest5d8413
 
Presentacion geteasy 2
Presentacion geteasy 2Presentacion geteasy 2
Presentacion geteasy 2
Jairo Alonso Vargas Pachon
 
Mysql index Introduction
Mysql index IntroductionMysql index Introduction
Mysql index Introduction
庆顺 程
 
bird house design
bird house designbird house design
bird house design
hcuretonii
 
VENTRİKÜLOMEGALİ
VENTRİKÜLOMEGALİ VENTRİKÜLOMEGALİ
VENTRİKÜLOMEGALİ
www.tipfakultesi. org
 
Blu ray creator
Blu ray creatorBlu ray creator
Blu ray creator
bluray_ripper
 
Battle Ktown
Battle KtownBattle Ktown
Battle Ktown
guestc1393b
 
Bib frame
Bib frameBib frame
Bib frame
ccase2
 

Viewers also liked (18)

Student Success Statements
Student Success StatementsStudent Success Statements
Student Success Statements
 
INTO THE WILD
INTO THE WILDINTO THE WILD
INTO THE WILD
 
трагедия ходжалы
трагедия ходжалытрагедия ходжалы
трагедия ходжалы
 
Aleksandra Popovic Inforum 2009
Aleksandra Popovic Inforum 2009Aleksandra Popovic Inforum 2009
Aleksandra Popovic Inforum 2009
 
WEb 2.0 En educación
WEb 2.0 En educaciónWEb 2.0 En educación
WEb 2.0 En educación
 
Gis guidelines for ep
Gis guidelines for epGis guidelines for ep
Gis guidelines for ep
 
論文の図表レイアウト例
論文の図表レイアウト例論文の図表レイアウト例
論文の図表レイアウト例
 
Semana de Conhecimentos Gerais 2013-53
Semana de Conhecimentos Gerais 2013-53Semana de Conhecimentos Gerais 2013-53
Semana de Conhecimentos Gerais 2013-53
 
Lezione Sui Blog
Lezione  Sui BlogLezione  Sui Blog
Lezione Sui Blog
 
Transverse fracture presentation bio 120
Transverse fracture presentation bio 120Transverse fracture presentation bio 120
Transverse fracture presentation bio 120
 
Los sistemas de informacion
Los sistemas de informacionLos sistemas de informacion
Los sistemas de informacion
 
Presentacion geteasy 2
Presentacion geteasy 2Presentacion geteasy 2
Presentacion geteasy 2
 
Mysql index Introduction
Mysql index IntroductionMysql index Introduction
Mysql index Introduction
 
bird house design
bird house designbird house design
bird house design
 
VENTRİKÜLOMEGALİ
VENTRİKÜLOMEGALİ VENTRİKÜLOMEGALİ
VENTRİKÜLOMEGALİ
 
Blu ray creator
Blu ray creatorBlu ray creator
Blu ray creator
 
Battle Ktown
Battle KtownBattle Ktown
Battle Ktown
 
Bib frame
Bib frameBib frame
Bib frame
 

Similar to Sbaw091020

Of class2
Of class2Of class2
Of class2
Janet Huang
 
Calculator code with scientific functions in java
Calculator code with scientific functions in java Calculator code with scientific functions in java
Calculator code with scientific functions in java
Amna Nawazish
 
Of class1
Of class1Of class1
Of class1
Janet Huang
 
Creating an Uber Clone - Part X.pdf
Creating an Uber Clone - Part X.pdfCreating an Uber Clone - Part X.pdf
Creating an Uber Clone - Part X.pdf
ShaiAlmog1
 
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdf
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdfImport java.awt.; Import acm.program.; Import acm.graphics.;.pdf
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdf
apexcomputer54
 
Creating an Uber Clone - Part XXXIX.pdf
Creating an Uber Clone - Part XXXIX.pdfCreating an Uber Clone - Part XXXIX.pdf
Creating an Uber Clone - Part XXXIX.pdf
ShaiAlmog1
 
Mobile Game and Application with J2ME - Collision Detection
Mobile Gameand Application withJ2ME  - Collision DetectionMobile Gameand Application withJ2ME  - Collision Detection
Mobile Game and Application with J2ME - Collision Detection
Jenchoke Tachagomain
 
Mobile Game and Application with J2ME
Mobile Gameand Application with J2MEMobile Gameand Application with J2ME
Mobile Game and Application with J2ME
Jenchoke Tachagomain
 
Making Games in JavaScript
Making Games in JavaScriptMaking Games in JavaScript
Making Games in JavaScript
Sam Cartwright
 
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter LuhBuilding Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
FITC
 
Standford 2015 week3: Objective-C Compatibility, Property List, Views
Standford 2015 week3: Objective-C Compatibility, Property List, ViewsStandford 2015 week3: Objective-C Compatibility, Property List, Views
Standford 2015 week3: Objective-C Compatibility, Property List, Views
彼得潘 Pan
 
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdfbfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
shehabhamad_90
 
Creating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdfCreating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdf
ShaiAlmog1
 
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
tbosstraining
 
Applet life cycle
Applet life cycleApplet life cycle
This is Java,I am currently stumped on how to add a scoreboard for.pdf
This is Java,I am currently stumped on how to add a scoreboard for.pdfThis is Java,I am currently stumped on how to add a scoreboard for.pdf
This is Java,I am currently stumped on how to add a scoreboard for.pdf
anjandavid
 
Real life XNA
Real life XNAReal life XNA
Real life XNA
Johan Lindfors
 
C programs Set 2
C programs Set 2C programs Set 2
C programs Set 2
Koshy Geoji
 
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
DevGAMM Conference
 
Proga 0608
Proga 0608Proga 0608
Proga 0608
Atsushi Tadokoro
 

Similar to Sbaw091020 (20)

Of class2
Of class2Of class2
Of class2
 
Calculator code with scientific functions in java
Calculator code with scientific functions in java Calculator code with scientific functions in java
Calculator code with scientific functions in java
 
Of class1
Of class1Of class1
Of class1
 
Creating an Uber Clone - Part X.pdf
Creating an Uber Clone - Part X.pdfCreating an Uber Clone - Part X.pdf
Creating an Uber Clone - Part X.pdf
 
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdf
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdfImport java.awt.; Import acm.program.; Import acm.graphics.;.pdf
Import java.awt.; Import acm.program.; Import acm.graphics.;.pdf
 
Creating an Uber Clone - Part XXXIX.pdf
Creating an Uber Clone - Part XXXIX.pdfCreating an Uber Clone - Part XXXIX.pdf
Creating an Uber Clone - Part XXXIX.pdf
 
Mobile Game and Application with J2ME - Collision Detection
Mobile Gameand Application withJ2ME  - Collision DetectionMobile Gameand Application withJ2ME  - Collision Detection
Mobile Game and Application with J2ME - Collision Detection
 
Mobile Game and Application with J2ME
Mobile Gameand Application with J2MEMobile Gameand Application with J2ME
Mobile Game and Application with J2ME
 
Making Games in JavaScript
Making Games in JavaScriptMaking Games in JavaScript
Making Games in JavaScript
 
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter LuhBuilding Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
Building Native Apps- A Digital Canvas for Coders and Designers with Walter Luh
 
Standford 2015 week3: Objective-C Compatibility, Property List, Views
Standford 2015 week3: Objective-C Compatibility, Property List, ViewsStandford 2015 week3: Objective-C Compatibility, Property List, Views
Standford 2015 week3: Objective-C Compatibility, Property List, Views
 
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdfbfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
bfd23fd7-0d89-45c0-8b82-c991b30ed375.pdf
 
Creating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdfCreating an Uber Clone - Part XXII.pdf
Creating an Uber Clone - Part XXII.pdf
 
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
【第一季第三期】Thinking in Javascript & OO in Javascript - 清羽
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
 
This is Java,I am currently stumped on how to add a scoreboard for.pdf
This is Java,I am currently stumped on how to add a scoreboard for.pdfThis is Java,I am currently stumped on how to add a scoreboard for.pdf
This is Java,I am currently stumped on how to add a scoreboard for.pdf
 
Real life XNA
Real life XNAReal life XNA
Real life XNA
 
C programs Set 2
C programs Set 2C programs Set 2
C programs Set 2
 
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
Самые вкусные баги из игрового кода: как ошибаются наши коллеги-программисты ...
 
Proga 0608
Proga 0608Proga 0608
Proga 0608
 

More from Atsushi Tadokoro

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望Atsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えAtsushi Tadokoro
 

More from Atsushi Tadokoro (20)

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
 

Recently uploaded

Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa EscortsCall Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
anilsa9823
 
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
rosankumar564363
 
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
yswno
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
sapna sharmap11
 
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
ravisconneraa55387
 
Company Profile of Tempcon - Chiller Manufacturer In India
Company Profile of Tempcon - Chiller Manufacturer In IndiaCompany Profile of Tempcon - Chiller Manufacturer In India
Company Profile of Tempcon - Chiller Manufacturer In India
soumotempcon
 
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
akrooshsaleem36
 
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa EscortsCall Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
anilsa9823
 
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
bttak
 
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
fyguxu
 
一比一原版办理(Caltech毕业证)加州理工学院毕业证
一比一原版办理(Caltech毕业证)加州理工学院毕业证一比一原版办理(Caltech毕业证)加州理工学院毕业证
一比一原版办理(Caltech毕业证)加州理工学院毕业证
kboqz
 
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkataℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
nhero3888
 
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in GurgaonPremium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
gurkirankumar98700
 
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
bljeremy734
 
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
lopezkatherina914
 
Call Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
Call Girl Low Price Noida 9873777170 Cash Payment Free Home DeliveryCall Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
Call Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
hanshkumar9870
 
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
mbawufebxi
 
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
bttak
 
sidewall damage of microLED (underlying physics and paper review).pdf
sidewall damage of microLED (underlying physics and paper review).pdfsidewall damage of microLED (underlying physics and paper review).pdf
sidewall damage of microLED (underlying physics and paper review).pdf
Brian Kim, PhD
 
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
vaibhavkumar8900
 

Recently uploaded (20)

Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa EscortsCall Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
 
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
Call Girls in Noida (Uttar Pradesh ) call me [🔝9899900591🔝] Escort In Noida s...
 
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
一比一原版(ku学位证书)美国堪萨斯大学毕业证如何办理
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
 
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
欧洲杯外围-欧洲杯外围投注官网-欧洲杯外围投注官网app|【​网址​🎉ac44.net🎉​】
 
Company Profile of Tempcon - Chiller Manufacturer In India
Company Profile of Tempcon - Chiller Manufacturer In IndiaCompany Profile of Tempcon - Chiller Manufacturer In India
Company Profile of Tempcon - Chiller Manufacturer In India
 
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
欧洲杯投注-欧洲杯投注押注app-欧洲杯投注押注app官网|【​网址​🎉ac10.net🎉​】
 
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa EscortsCall Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
Call Girls Goa ☎️ +91-7426014248 😍 Goa Call Girl Beauty Girls Goa Escorts
 
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
一比一原版西三一大学毕业证(TWU毕业证书)学历如何办理
 
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
一比一原版(aiti毕业证书)澳洲悉尼翻译学院毕业证如何办理
 
一比一原版办理(Caltech毕业证)加州理工学院毕业证
一比一原版办理(Caltech毕业证)加州理工学院毕业证一比一原版办理(Caltech毕业证)加州理工学院毕业证
一比一原版办理(Caltech毕业证)加州理工学院毕业证
 
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkataℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
ℂall Girls Kolkata 😍 Call 0000000 Vip Escorts Service Kolkata
 
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in GurgaonPremium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
Premium Call Girls Gurgaon {9999965857} VVIP BHAWNA Call Girls in Gurgaon
 
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
世预赛投注-世预赛投注投注官网app-世预赛投注官网app下载|【​网址​🎉ac123.net🎉​】
 
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
欧洲杯体彩-欧洲杯体彩比赛投注-欧洲杯体彩比赛投注官网|【​网址​🎉ac99.net🎉​】
 
Call Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
Call Girl Low Price Noida 9873777170 Cash Payment Free Home DeliveryCall Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
Call Girl Low Price Noida 9873777170 Cash Payment Free Home Delivery
 
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
一比一原版(SBU毕业证书)肯特州立大学毕业证如何办理
 
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
一比一原版圣托马斯大学毕业证(UST毕业证书)学历如何办理
 
sidewall damage of microLED (underlying physics and paper review).pdf
sidewall damage of microLED (underlying physics and paper review).pdfsidewall damage of microLED (underlying physics and paper review).pdf
sidewall damage of microLED (underlying physics and paper review).pdf
 
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
Marathi Call Girls Bangalore 9024918724 Just CALL ME Book Beautiful Girls any...
 

Sbaw091020

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; }; #endif
  • 7. #include "testApp.h" void testApp::setup(){ ofBackground(0,0,0); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew(); ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(), 320,240); ! } } void testApp::draw(){ colorImg.draw(20,20); } ...( )...
  • 8.
  • 9.
  • 10. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; }; #endif
  • 11. #include "testApp.h" void testApp::setup(){ ofBackground(0, 0, 0); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); grayImage.allocate(320,240); } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew(); ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(), 320,240); grayImage = colorImg; ! } } void testApp::draw(){ ofSetColor(0xffffff); colorImg.draw(20,20); grayImage.draw(360,20); } ...( )...
  • 12.
  • 13.
  • 14. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayBg; ofxCvGrayscaleImage grayDiff; bool bLearnBakground; int threshold; }; #endif
  • 15. #include "testApp.h" void testApp::setup(){ ofBackground(0, 0, 0); ofEnableAlphaBlending(); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); grayImage.allocate(320,240); grayBg.allocate(320,240); ! grayDiff.allocate(320,240); bLearnBakground = true; threshold = 100; } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew(); ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(), 320,240); grayImage = colorImg; if (bLearnBakground == true){
  • 16. ! ! ! grayBg = grayImage; ! ! ! bLearnBakground = false; ! ! } grayDiff.absDiff(grayBg, grayImage); grayDiff.threshold(threshold); ! } } void testApp::draw(){ ofNoFill(); ofSetColor(0xffffff); colorImg.draw(20,20); grayImage.draw(360,20); grayBg.draw(20,280); ! grayDiff.draw(360,280); ofSetColor(0xffffff); ! char reportStr[1024]; ! sprintf(reportStr, "threshold %i (press: +/-)", threshold); ! ofDrawBitmapString(reportStr, 20, 600); }
  • 17. void testApp::keyPressed (int key){ ! switch (key){ ! ! case ' ': ! ! ! bLearnBakground = true; ! ! ! break; case '+': ! ! ! threshold ++; ! ! ! if (threshold > 255) threshold = 255; ! ! ! break; ! ! case '-': ! ! ! threshold --; ! ! ! if (threshold < 0) threshold = 0; ! ! ! break; ! } } ...( )...
  • 18.
  • 19.
  • 20. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayBg; ofxCvGrayscaleImage grayDiff; ofxCvContourFinder contourFinder; bool bLearnBakground; int threshold; }; #endif
  • 21. #include "testApp.h" void testApp::setup(){ ofBackground(0, 0, 0); ofEnableAlphaBlending(); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); grayImage.allocate(320,240); grayBg.allocate(320,240); ! grayDiff.allocate(320,240); bLearnBakground = true; threshold = 100; } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew(); ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(), 320,240); grayImage = colorImg; if (bLearnBakground == true){ ! ! ! grayBg = grayImage;
  • 22. ! ! ! bLearnBakground = false; ! ! } grayDiff.absDiff(grayBg, grayImage); grayDiff.threshold(threshold); contourFinder.findContours(grayDiff, 20, (340*240)/3, 10, true); ! } } void testApp::draw(){ ofNoFill(); ofSetColor(0xffffff); colorImg.draw(20,20); grayImage.draw(360,20); grayBg.draw(20,280); ! grayDiff.draw(360,280); for (int i = 0; i < contourFinder.nBlobs; i++){ contourFinder.blobs[i].draw(360,540); } ofSetColor(0xffffff); ! char reportStr[1024]; ! sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i", threshold, contourFinder.nBlobs); ! ofDrawBitmapString(reportStr, 20, 600); }
  • 23. void testApp::keyPressed (int key){ ! switch (key){ ! ! case ' ': ! ! ! bLearnBakground = true; ! ! ! break; ! ! case '+': ! ! ! threshold ++; ! ! ! if (threshold > 255) threshold = 255; ! ! ! break; ! ! case '-': ! ! ! threshold --; ! ! ! if (threshold < 0) threshold = 0; ! ! ! break; ! } } ...( )...
  • 24.
  • 25.
  • 26. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayBg; ofxCvGrayscaleImage grayDiff; ofxCvContourFinder contourFinder; bool bLearnBakground; int threshold; }; #endif
  • 27. #include "testApp.h" void testApp::setup(){ ofBackground(0, 0, 0); ofEnableAlphaBlending(); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); grayImage.allocate(320,240); grayBg.allocate(320,240); grayDiff.allocate(320,240); bLearnBakground = true; threshold = 100; } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew(); ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(), 320,240); grayImage = colorImg; if (bLearnBakground == true){ ! ! ! grayBg = grayImage; ! ! ! bLearnBakground = false; ! ! }
  • 28. grayDiff.absDiff(grayBg, grayImage); grayDiff.threshold(threshold); contourFinder.findContours(grayDiff, 20, (340*240)/3, 10, true); ! } } void testApp::draw(){ ofFill(); ofSetColor(0, 31, 255, 200); for( int i=0; i<(int)contourFinder.blobs.size(); i++ ) { ! ! ofBeginShape(); ! ! for( int j=0; j<contourFinder.blobs[i].nPts; j++ ) { ! ! ! ofVertex( contourFinder.blobs[i].pts[j].x * 4, contourFinder.blobs[i].pts[j].y * 4 ); ! ! } ! ! ofEndShape(); ! } ofSetColor(0xffffff); ! char reportStr[1024]; ! sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i", threshold, contourFinder.nBlobs); ! ofDrawBitmapString(reportStr, 20, 10); }
  • 29. void testApp::keyPressed (int key){ ! switch (key){ ! ! case ' ': ! ! ! bLearnBakground = true; ! ! ! break; case '+': ! ! ! threshold ++; ! ! ! if (threshold > 255) threshold = 255; ! ! ! break; ! ! case '-': ! ! ! threshold --; ! ! ! if (threshold < 0) threshold = 0; ! ! ! break; ! } } ...( )...
  • 30.
  • 31.
  • 32. #ifndef _TEST_APP #define _TEST_APP #include "ofMain.h" #include "ofxOpenCv.h" #include "ofxBox2d.h" #include "ofxVectorMath.h" #include "CustomCircle.h" class testApp : public ofBaseApp { public: void setup(); void update(); void draw(); 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); ofVideoGrabber vidGrabber; ofxCvColorImage colorImg; ofxCvGrayscaleImage grayImage; ofxCvGrayscaleImage grayBg;
  • 33. ofxCvGrayscaleImage grayDiff; ofxCvContourFinder contourFinder; bool bLearnBakground; int threshold; ofxBox2d box2d; vector <ofxBox2dLine> lineStrips; vector <ofxBox2dPolygon> polygons; vector <CustomCircle> circles; }; #endif
  • 34. #include "testApp.h" void testApp::setup(){ ofBackground(0, 0, 0); ofEnableAlphaBlending(); ofSetFrameRate(30); vidGrabber.setVerbose(true); vidGrabber.initGrabber(320,240); colorImg.allocate(320,240); grayImage.allocate(320,240); grayBg.allocate(320,240); ! grayDiff.allocate(320,240); bLearnBakground = true; threshold = 20; box2d.init(); ! box2d.setGravity(0, 10); box2d.createBounds(); ! box2d.setFPS(30.0); } void testApp::update(){ bool bNewFrame = false; vidGrabber.grabFrame(); bNewFrame = vidGrabber.isFrameNew();
  • 35. ! if (bNewFrame){ colorImg.setFromPixels(vidGrabber.getPixels(),320,240); grayImage = colorImg; if (bLearnBakground == true){ ! ! ! grayBg = grayImage; ! ! ! bLearnBakground = false; ! ! } grayDiff.absDiff(grayBg, grayImage); grayDiff.threshold(threshold); contourFinder.findContours(grayDiff, 40, (ofGetWidth()*ofGetHeight())/ 3, 5, false); for (int i=0; i<lineStrips.size(); i++) { lineStrips[i].clear(); } for( int i=0; i<(int)contourFinder.blobs.size(); i++ ) { ofxBox2dLine l; l.setPhysics(1.0, 0.8, 0.5); l.setWorld(box2d.getWorld()); for( int j=0; j<contourFinder.blobs[i].nPts; j++ ) { l.addPoint(contourFinder.blobs[i].pts[j].x*ofGetWidth()/320, contourFinder.blobs[i].pts[j].y*ofGetHeight()/240); } l.createShape(); lineStrips.push_back(l); } ! } box2d.update(); }
  • 36. void testApp::draw(){ for (int i=0; i<lineStrips.size(); i++) { lineStrips[i].draw(); } //circles for(int i=0; i<circles.size(); i++) { circles[i].draw(); } ofSetColor(255, 255, 255); ! char reportStr[1024]; ! sprintf(reportStr, "threshold %i (press: +/-)nnum blobs found %i", threshold, contourFinder.nBlobs); ! ofDrawBitmapString(reportStr, 20, 10); } void testApp::keyPressed (int key){ ! switch (key){ ! ! case ' ': ! ! ! bLearnBakground = true; ! ! ! break; case '+': ! ! ! threshold ++; ! ! ! if (threshold > 255) threshold = 255; ! ! ! break;
  • 37. ! ! case '-': ! ! ! threshold --; ! ! ! if (threshold < 0) threshold = 0; ! ! ! break; case 'f': ofSetFullscreen(true); break; case 'c': float r = ofRandom(20, 40); // CustomCircle c; //CustomCircle c.setPhysics(1.0, 0.8, 0.5); // c.setup(box2d.getWorld(), mouseX, mouseY, r); // circles.push_back(c); // circles break; ! } } void testApp::keyReleased(int key){ } void testApp::mouseMoved(int x, int y){ } void testApp::mouseDragged(int x, int y, int button){ }
  • 38. void testApp::mousePressed(int x, int y, int button){ } void testApp::mouseReleased(int x, int y, int button){ } void testApp::windowResized(int w, int h){ }
  • 39. #include "ofxVectorMath.h" #include "ofxBox2d.h" //ofxBox2dCircle CustomCircle class CustomCircle : public ofxBox2dCircle { public: void draw(); // };
  • 40. #include "CustomCircle.h" void CustomCircle::draw() { float radius = getRadius(); // glPushMatrix(); // glTranslatef(getPosition().x, getPosition().y, 0); // ofFill(); // ofSetColor(31,127,255,100); // 1 ofCircle(0, 0, radius);!// 1 ofSetColor(31,127,255,200); // 2 ofCircle(0, 0, radius*0.7); // 2 glPopMatrix(); // }