jumbo_shrimp.pde

来自「some dummy reverse of colors and forms i」· PDE 代码 · 共 98 行

PDE
98
字号
/** * blue = smallest (shrimp) blob * red  = largest (jumbo) blob */import hypermedia.video.*;OpenCV opencv;int w = 320;int h = 240;float value = 80;boolean preview = true;void setup() {    size( w, h );    opencv = new OpenCV( this );    opencv.capture(w,h);    println( "Drag mouse inside sketch window to change threshold" );}void draw() {    Blob[] blobs;    background(0);    noStroke();    opencv.read();    opencv.flip( OpenCV.FLIP_HORIZONTAL );    opencv.convert( OpenCV.GRAY );    opencv.absDiff();    opencv.threshold(value);    image( opencv.image(OpenCV.MEMORY), 0, 0 );    if ( preview ) image( opencv.image(), 0, 0 );    // find jumbo blob    blobs = opencv.blobs( 1000, w*h, 1, false );    fill(255,0,0);    if ( blobs.length>0 ) {        beginShape();        for( int i=0; i<blobs[0].points.length; i++ ) {            vertex( blobs[0].points[i].x, blobs[0].points[i].y );        }        endShape(CLOSE);    }    // restore image    opencv.restore();    opencv.flip( OpenCV.FLIP_HORIZONTAL );    opencv.convert( OpenCV.GRAY );    opencv.absDiff();    opencv.threshold(value);    // find shrimp blob    blobs = opencv.blobs( 1, 100, 1, false );    fill(0,0,255);    if ( blobs.length>0 ) {        beginShape();        for( int i=0; i<blobs[0].points.length; i++ ) {            vertex( blobs[0].points[i].x, blobs[0].points[i].y );        }        endShape(CLOSE);    }}void mouseDragged() {    value = map(mouseX,0,width,0,255);    preview  = true;}void mouseReleased() {    preview = false;}void keyPressed() {    opencv.remember();}public void stop() {    opencv.stop();    super.stop();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?