OpenCV Java-空白网络摄像头捕获
我在尝试使用Java在OpenCV中捕获网络摄像头时遇到了一个奇怪的问题。我使用的是:中的Imshow方法,我使用的是一个稍加修改的示例代码。问题是:我在尝试捕获时只得到最后一帧,之前的帧都是空白的,无论for循环中的变量有多大 在这个例子中,我应该在15秒内得到10帧,但我在15秒后得到一帧。你知道这个代码有什么问题吗 如果我使用Highgui.imwrite方法,我会在工作区文件夹中得到10个文件OpenCV Java-空白网络摄像头捕获,java,opencv,webcam,Java,Opencv,Webcam,我在尝试使用Java在OpenCV中捕获网络摄像头时遇到了一个奇怪的问题。我使用的是:中的Imshow方法,我使用的是一个稍加修改的示例代码。问题是:我在尝试捕获时只得到最后一帧,之前的帧都是空白的,无论for循环中的变量有多大 在这个例子中,我应该在15秒内得到10帧,但我在15秒后得到一帧。你知道这个代码有什么问题吗 如果我使用Highgui.imwrite方法,我会在工作区文件夹中得到10个文件 public class WebcamThread extends Thread{ publ
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();
}
}
}
}/P>在C++中,至少要得到任何显示,必须添加CV::WaITKEY调用,因为该函数运行在GUI事件循环中。Java OpenCV中有这样的东西吗?如果是这样的话,也许可以尝试添加它。我的问题有点奇怪。奇怪的是:的代码在我的笔记本电脑上运行良好。