Работа с OpenCV. Часть 1. Установка и Hello World
В этой серии статей будет расмотрена работа с библиотекой компьютерного зрения OpenCV. Для работы из под Java будет использоваться интерфейс JavaCV.
Установка
Все ниже описанное сделано под управлением Linux Ubuntu 12.04!
Первым делом посещаем сайт JavaCV и скачиваем последную версию, далее смотрим на поддерживаемую версию OpenCV в разделе Required Software это OpenCV 2.4.6.x.
Идем на сайт OpenCV и скачивавем поддерживаемую на данный момент версию.
Если все прошло успешно у нас будет 2 архива:
opencv-2.4.6.1.tar.gz
javacv-0.6-bin.zip
Установка OpenCV
Для работы графики дополнительно нужно установить (ну и cmake если вдруг у кого-то не стоит):
apt-get install libgtk2.0-dev
apt-get install cmake
Команды для установки:
cd opencv-2.4.6.1/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ./
на этапе cmake важно просмотреть вывод консоли и найти такие строчки:
Java:
— ant: /usr/bin/ant (ver 1.8.2)
— JNI: NO
— Java tests: NO
Без JNI вы не получите JAR файл который нам нужен, если вы увидели тоже что и я, то проверьте вашу $JAVA_HOME, скорее всего она пуста… В идеале вы должны увидеть следующее:
— Java:
— ant: /usr/bin/ant (ver 1.8.2)
— JNI: /usr/lib/jvm/java-8-oracle/include /usr/lib/jvm/java-8-oracle/include/linux /usr/lib/jvm/java-8-oracle/include
— Java tests: YES
Продолжаем дальше:
make
make install
А пока они выполняються можно пойти и сделать себе кофе!
Работа в IDE
Создаем обычное Java-приложение, и добавляем туда такие библиотеки:
javacv.jar
javacpp.jar
javacv-linux-*.jar
И попробуем вывести трансляцию веб-камеры в окно, и еще сохранить фото:
package Habr; import com.googlecode.javacv.CanvasFrame; import com.googlecode.javacv.FrameGrabber; import com.googlecode.javacv.cpp.opencv_core.*; import com.googlecode.javacv.OpenCVFrameGrabber; import static com.googlecode.javacv.cpp.opencv_core.cvFlip; import static com.googlecode.javacv.cpp.opencv_highgui.*; public class HelloWorld { public static void main(String[] args) { CanvasFrame canvas = new CanvasFrame("Webcam"); canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); FrameGrabber grabber = new OpenCVFrameGrabber(""); try { grabber.start(); IplImage img; while (true) { img = grabber.grab(); canvas.setCanvasSize(grabber.getImageWidth(), grabber.getImageHeight()); if (img != null) { cvFlip(img, img, 1); cvSaveImage("/home/vlad/1.jpeg", img); canvas.showImage(img); } } } catch (Exception e) { } } }
После запуска можно увидеть себя, а потом найти фото по указанному пути 🙂 Я думаю объяснять что такое OpenCV, и что он может не надо. Спасибо, это все.
ссылка на оригинал статьи http://habrahabr.ru/post/204638/
Добавить комментарий