Главная » Processing » Использование вебкамеры в Processing

0

Первое, что нужно научиться делать – выводить видео из вебкамеры на дисплей. С Processing вы легко справитесь с этим. Для этого нужно написать всего несколько строк кода.

Как это делается

Код этого примера будет действительно коротким. Начать следует с импорта библиотеки video, входящей в Processing. Для этого откройте Sketch | Import Library | video. Также нужно объявить объект типа Capture. Он будет обеспечивать связь с вебкамерой на вашем компьютере.

import processing.video.*;

Capture webcam;

В функции setup() нужно инициализировать объект Capture и настроить его для захвата видео. В функции draw() мы выведем на экран текущее изображение с вебкамеры.

void setup()

{

size( 640, 480 );

smooth();

println( Capture.list() );

webcam = new Capture( this, width, height, 30 ); webcam.start();

}

void draw()

{

background( 255 );

image( webcam, 0, 0 );

}

Последняя функция, которую нужно добавить это captureEvent(). Эта функция вызывается каждый раз, когда доступен новый кадр.

void captureEvent( Capture webcam )

{

webcam.read();

}

Когда вы запустите скетч, результат будет выглядеть примерно так:

Как это работает

Первое, что нужно сделать – инициализировать объект Capture. Это можно сделать с помощью следующей строки кода:

webcam = new Capture( this, width, height, 30 );

Функция Capture() может иметь от трех до пяти параметров. Первый параметр это всегда this. Второй и третий параметры это ширина и высота видео. Я указал те же размеры, что и размеры окна, но вы можете выбрать любые другие. В этом примере я указал также дополнительный четвертый параметр – частоту кадров.

Если на вашем компьютере установлено несколько вебкамер, вы можете выбрать, какую камеру использовать. Вывести все доступные камеры на консоль можно с помощью метода Capture.list(). В качестве четвертого параметра вы можете указать имя камеры:

webcam = new Capture( this, width, height, "Logitech Camera", 30 );

Следующее, что нужно сделать – захватить кадры с помощью метода start(). Если вы этого не сделаете, ничего не будет отображаться. В функции draw() выводится на экран изображение с вебкамеры с помощью функции image().

Функция captureEvent() вызывается каждый раз, когда становится доступен новый кадр с вебкамеры. В этой функции нужно применить метод webcam.read() для обновния изображения с вебкамеры.

Источник: Ян Вантомм, Processing 2: креативное программирование, перевод с английского Александры Мишутиной, Published by Packt Publishing Ltd., 2012, BIRMINGHAM – MUMBAI.

По теме:

  • Комментарии