...

вторник, 3 декабря 2013 г.

Работа с OpenCV. Часть 1. Установка и Hello World

Навигатор:

Работа с 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, и что он может не надо. Спасибо, это все.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий