2

此刻,我正在处理识别表格。它与我的电脑摄像头完美搭配,但现在我想用网络上的摄像头进行测试。我使用 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);
}

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

线程“主”com.googlecode.javacv.FrameGrabber$Exception 中的异常:cvCreateFileCapture() 错误:无法创建相机捕获。在 com.googlecode.javacv.OpenCVFrameGrabber.start(OpenCVFrameGrabber.java:171) 在 Test.FrameRecorderTest.main(FrameRecorderTest.java:12) 警告:找不到编解码器参数 (../../modules/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();
        }
    }
}
4

0 回答 0