Веб-камера IP на OpenCV для Java

Вопрос: Я использую IP Webcam APP для Android и потоковое видео MJPEG через локальный URL: Я смог показать видео с помощью проигрывателя VLC и этого фрагмента кода в C++. На OpenCV 2.2 я открыл URL-адрес, используя: VideoCapture cap; cap.open("http://192.168.0.2:8080/video?dummy=param.mjpg"); Он работал в C++, но я хочу, чтобы он работал на Java. Я смог запустить

Вопрос:

Я использую IP Webcam APP для Android и потоковое видео MJPEG через локальный URL:

Я смог показать видео с помощью проигрывателя VLC и этого фрагмента кода в C++. На OpenCV 2.2 я открыл URL-адрес, используя:

VideoCapture cap; cap.open(«http://192.168.0.2:8080/video?dummy=param.mjpg»);

Он работал в C++, но я хочу, чтобы он работал на Java. Я смог запустить OpenCV2.4.9 с помощью Java при съемке с моей встроенной веб-камеры. Это мой код для получения изображений с URL-адреса на Java.

System.loadLibrary(«opencv_java249»); VideoCapture capture = new VideoCapture(); capture.open(«http://192.168.0.2:8080/video?dummy=param.mjpg»);

Но capture.open не открывает потоковое вещание, и я не мог его отлаживать должным образом. Я знаю, что это может быть проблемой с ffmpeg, поскольку он работает на OpenCV2.2. Я также знаю, что мой OpenCV2.2 специфичен для MS 2010 и может быть более полным.

Помогло бы мне скомпилировать OpenCV2.4.9 из источников? Есть ли файл, который я мог бы добавить, чтобы решить эту проблему? Есть ли другой способ получения видео с IP-камеры и использования на OpenCV?

Ответ №1

Я потратил некоторое время, чтобы понять это. Я не смог получить поток непосредственно из OpenCVJava.I скачал

http://www.mediafire.com/download/ayxwnwnqv3mpg39/javacv-0.7-bin.zip http://www.mediafire.com/download/2rkk0rjwxov7ale/javacv-0.7-cppjars.zip

Я считаю, что это Java-оболочка в OpenCV на C. Я взял эту ссылку из этого видео.

htttp://www.youtube.com/watch? v = mIYaHCyZICI

После распаковки zip я добавил банки в свой проект и использовал этот код:

package javaapplication7; import java.io.IOException; import com.googlecode.javacv.OpenCVFrameGrabber; import com.googlecode.javacv.CanvasFrame; import com.googlecode.javacv.cpp.opencv_core.IplImage; public class JavaApplication7 { public static void main(String[] args) throws Exception { OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(«http://192.168.0.2:8080/video?dummy=param.mjpg»); grabber.setFormat(«mjpeg»); grabber.start(); for (int k=0; k<20000; k++){ System.out.print(k); } IplImage frame = grabber.grab(); CanvasFrame canvasFrame = new CanvasFrame(«Camera»); canvasFrame.setCanvasSize(frame.width(), frame.height()); while (canvasFrame.isVisible() && (frame = grabber.grab()) != null) { canvasFrame.showImage(frame); } grabber.stop(); canvasFrame.dispose(); System.exit(0); } }

Что я получил от:

htttp://stackoverflow.com/questions/14251290/cvcreatefilecapture-error-could-not-create-camera-capture-with-javacv

Для начала перехвата требуется 15-20 секунд. Но я был впечатлен задержкой, которая намного меньше, чем VLC. Это 1-2 секунды по сравнению с 3-4 секундами на VLC. Я хотел бы поддержать парня, на которого я ответил, но у меня нет достаточной репутации /

Ответ №2

Я также столкнулся с той же проблемой, что и вы, но самым простым методом, который я понял, было использование камеры дроида вместо приложения веб-камеры Ip. Проверьте это здесь

Оцените статью
Добавить комментарий