我刚刚在我的 mac air 上完成了我的第一次 opencv 安装,我一直在尝试从屏幕内置的摄像头中获取输入。据我所知,我已经在 Eclipse 中正确运行了这些库,因为每次尝试调用任何方法时都不会出现大量错误。但是,现在发生的是网络摄像头的问题,它似乎是通过将 0 传递给构造函数来正确创建的(从 1 到 50 没有其他任何东西返回任何东西,我相信 -1 是默认值)。但是当我尝试用它来取回框架时,垫子总是空的。
据我所知,我似乎可以访问相机,但是在代码和能够实际激活相机拍摄视频之间存在某种断开连接。如果这很重要,则显示相机对大多数程序处于活动状态的灯始终保持不活动状态。
相关代码贴在下面。我将非常感谢您可能拥有的任何见解或在 java 中工作以从网络摄像头中获取图像以用于 java gui 的代码示例。谢谢!
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture camera = new VideoCapture(0);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//camera.open(0); //Useless
if(!camera.isOpened()){
System.out.println("Camera broken");
}
else{
System.out.println("Camera OK!");
}
Mat frame = new Mat();
camera.read(frame);
System.out.println("width:" + frame.width());
Highgui.imwrite("myframe.png", frame);
输出是:
Camera OK!
width:0
libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data
Cleaned up camera.