gpt4 book ai didi

java - 用于 Java 的 OpenCV 上的 IP 网络摄像头

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:02 25 4
gpt4 key购买 nike

我正在使用适用于 android 的 IP 网络摄像头应用程序,它正在通过本地 url 流式传输 MJPEG 视频:

http://192.168.0.2:8080/video

我能够使用 VLC 播放器和这段 C++ 代码来播放视频。在 OpenCV 2.2 上,我使用以下方法打开了 url:

VideoCapture cap;

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

它在 C++ 中工作,但我希望它在 Java 中工作。从我的内置网络摄像头拍照时,我能够使用 Java 运行 OpenCV2.4.9。这是我用 Java 从 url 获取图像的代码。

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 上使用?

最佳答案

我花了一段时间才弄明白。我无法直接从 OpenCVJava 接收流。我下载了

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

我认为它是用 C 编写的 OpenCV 的 java 包装器。我从这个视频中获取了这个链接。

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

解压缩 zip 后,我将 jar 添加到我的项目中并使用了以下代码:

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 小得多的延迟印象深刻。与 VLC 上的 3-4 秒相比,这是 1-2 秒。我想投票给我回答的那个人,但我没有足够的声誉/

关于java - 用于 Java 的 OpenCV 上的 IP 网络摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24843181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com