有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

OpenCV Java空白网络摄像头捕获

我在使用Java在OpenCV中获取网络摄像头时遇到了一个奇怪的问题。我使用的是来自:https://github.com/master-atul/ImShow-Java-OpenCV的Imshow()方法,我使用的是一个稍加修改的示例代码。问题是:我在尝试捕捉时只得到最后一帧,之前的帧都是空白的,无论我在for循环中的变量有多大

在这个例子中,我应该在15秒内得到10帧,但我在15秒后得到一帧。你知道这个代码有什么问题吗

如果我用的是Highgui。imwrite()方法我在工作区文件夹中得到10个文件

public class WebcamThread extends Thread{

public WebcamThread() {
    capture();
}


private static void capture() {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

    VideoCapture vcam = new VideoCapture(0);
    Imshow im = new Imshow("Camera capture in OpenCV");
    Mat m = new Mat();

    vcam.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, 800);
    vcam.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, 600); 

    // loop until VideoCamera is Available
    while (vcam.isOpened() == false);

    System.out.println("Found webcam: " + vcam.toString());

    // Bug Fix: Loop until initial image frames are empty
    while (m.empty()) {
        vcam.retrieve(m);
    }

    im.showImage(m);

    for (int i=0; i<10; i++) {
        vcam.retrieve(m);           

        System.out.println("Displaying " + i + " frame");
        try {
            Thread.sleep(1500);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

}


共 (0) 个答案