Главная » Processing » Доступ к вебкамере с помощью OpenCV в Processing

0

Для начала мы займемся использованием 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 );

}

В результате вы увидите примерно это:

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

Мы начинаем с импорта в скетч библиотеки 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 );

В функции 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 );

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

По теме:

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