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) 个答案