Processing 2. Креативное программирование
.pdfOpenCV 2, openFrameworks toolkit http://www.openframeworks.cc/.C++. , Processing, .
OpenCV
OpenCV .video Processing.
OpenCV. Sketch | Import Library | OpenCV. :
import hypermedia.video.*;
OpenCV. setup()capture().
OpenCV opencv;
void setup()
{
size( 640, 480 );
opencv = new OpenCV( this ); opencv.capture( width, height );
}
draw() ,image().
void draw()
{
opencv.read();
opencv.flip( OpenCV.FLIP_HORIZONTAL ); image( opencv.image(), 0, 0 );
}
180
8
:
OpenCV.. setup()OpenCV, .
import hypermedia.video.*; OpenCV opencv;
setup() OpenCV OpenCV. this -PApplet. capture() openCV. - , width, ,, - , height.
Processing, .
opencv = new OpenCV( this ); opencv.capture( width, height );
181
draw() read(). . flip() .: OpenCV.FLIP_HORIZONTAL, OpenCV. FLIP_VERTICAL OpenCV.FLIP_BOTH. opencv.image()
PImage,Processing - image().
opencv.read();
opencv.flip( OpenCV.FLIP_HORIZONTAL ); image( opencv.image(), 0, 0 );
OpenCV
OpenCV ., .
, OpenCV OpenCV. java.awt.Rectangle,- ., . setup() -OpenCV cascade() .
import hypermedia.video.*; import java.awt.Rectangle;
OpenCV opencv;
void setup()
{
size( 640, 480 );
opencv = new OpenCV( this ); opencv.capture( 320, 240 );
opencv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );
}
draw() , ,- . detect() .
.
void draw()
{
background( 0 );
opencv.read();
182
8
opencv.flip( OpenCV.FLIP_HORIZONTAL ); opencv.convert( GRAY );
scale( 2 );
image( opencv.image(), 0, 0 );
Rectangle[] faces = opencv.detect();
noStroke(); fill( 0 );
for ( int i = 0; i < faces.length; i++ ) {
rect( faces[i].x, faces[i].y, faces[i].width, faces[i].height );
}
}
, - :
, - OpenCV cascade(). OpenCV.CASCADE_FRONTALFACE_ALT. , XML
OpenCV, .
opencv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );
183
CASCADE_FRONTALFACE_ALT , .OpenCV .:
fOpenCV.CASCADE_FRONTALFACE_ALT_TREE
fOpenCV.CASCADE_FRONTALFACE_ALT
fOpenCV.CASCADE_FRONTALFACE_ALT2
fOpenCV.CASCADE_FRONTALFACE_DEFAULT
fOpenCV.CASCADE_PROFILEFACE
fOpenCV.CASCADE_FULLBODY
fOpenCV.CASCADE_LOWERBODY
fOpenCV.CASCADE_UPPERBODY
, - . -. 320 x 240 scale(2) .
detect() OpenCV .-. -.
Rectangle[] faces = opencv.detect();
OpenCV
OpenCV, -. -- Region of Interest (ROI). ROI. OpenCV .
.- ROI() draw() .
import hypermedia.video.*; import java.awt.Rectangle;
OpenCV opencv;
void setup()
{
size( 640, 480 );
184
8
opencv = new OpenCV( this ); opencv.capture( 320, 240 );
opencv.cascade( OpenCV.CASCADE_FRONTALFACE_ALT );
}
void draw()
{
background( 0 );
opencv.read();
opencv.flip( OpenCV.FLIP_HORIZONTAL ); opencv.convert( GRAY );
opencv.ROI( 160, 0, 160, 240 );
scale( 2 );
image( opencv.image(), 0, 0 );
Rectangle[] faces = opencv.detect();
noStroke(); fill( 0 );
for ( int i = 0; i < faces.length; i++ ) {
rect( faces[i].x + 160, faces[i].y, faces[i].width, faces[i].height );
}
}
. ,.
185
ROI() . . -x y . . OpenCV, ROI(). .
OpenCV
.ROI(),.
. ,.
import hypermedia.video.*;
OpenCV opencv;
void setup()
{
size( 640, 480 );
opencv = new OpenCV( this ); opencv.capture( width, height );
}
draw() . .
void draw()
{
background( 0 );
opencv.read();
opencv.flip( OpenCV.FLIP_BOTH ); opencv.convert( GRAY );
opencv.brightness( 20 );
186
8
opencv.contrast( 80 );
opencv.ROI( 160, 120, 320, 240 ); opencv.blur( OpenCV.GAUSSIAN, 41 );
image( opencv.image(), 0, 0 );
}
- ..
brightness() . contrast() -. -128 128..
blur() .. OpenCV.CV_BLUR, OpenCV.CV_GAUSSIAN, OpenCV.CV_MEDIAN OpenCV.CV_ BILATERAL.; ,.
187
9
JavaScript
:
fProcessing
fHTML
f/SVG
f3D
fProcessing.js Processing
fJavaScript
fProcessing.js jQuery
fToxiclibs.js
JAVASCRIPT Processing 2 Processing.js, JavaScriptProcessing. HTML5 canvasProcessing. 2D 3D Processing.js.
Processing.js JavaScript jQuery.