cvCreateFileCapture()错误:无法使用JavaCV创建摄像头捕获

时间:2013-01-10 05:21:27

标签: camera ip javacv pattern-recognition

此刻我参与了表彰表格。它非常适合我的电脑相机,但现在我想在网络上用相机测试。我使用JavaCV(OpenCV适用于Java)。

这是我的代码:

public static void main(String[] args) throws Exception {

    OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("http://192.168.1.210:5500/snapshot.cgi?user=admin&pwd=123456"); 
    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);
}

我有一个错误,但我不明白。

  

线程“main”中的异常   com.googlecode.javacv.FrameGrabber $异常:cvCreateFileCapture()   错误:无法创建摄像头捕获。在   com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171)     在Test.FrameRecorderTest.main(FrameRecorderTest.java:12)警告:   找不到编解码器参数   (../../模块/ highgui / SRC / cap_ffmpeg_impl.hpp:375)

在开始时我认为这是我拍摄相机照片的地址,但我在Mozilla / IE中进行了测试,我可以拥有该图像。所以我觉得地址还可以。如果我通过视频改变我的地址,那没关系。 我想......也许是因为我拍摄了我的相机,而不是视频......我想......如果是这样我可以在视频和图片之间做出选择吗?


更新:我现在改变了我的方法,现在没关系。我认为这是因为我拍了一段带有视频代码的照片。

package Test;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import javax.imageio.ImageIO;
import com.googlecode.javacv.CanvasFrame;
public class TestconnectionCamera {

    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        CanvasFrame CamWindow = new CanvasFrame("Camera");

        String Cam1Jpeg_url = "http://192.168.1.210:5500/snapshot.cgi?user=admin&pwd=123456";
        URL url = new URL(Cam1Jpeg_url);

        while(true){
        InputStream is = url.openStream();
        BufferedImage image = ImageIO.read(is);
        CamWindow.showImage(image);
        is.close();
        }
    }
}

0 个答案:

没有答案