我有一个使用外部摄像头的JavaCV应用程序,但它不能正常工作......结果是来自摄像头的黑色图像...... 我有另一个项目使用相同的代码,它的工作正常... 我不明白为什么它不适用于我的新项目
capture = cvCreateCameraCapture(1);
imgCamera = cvQueryFrame(capture);
代码很简单,首先从外部网络摄像头捕获图像并将其设置为IplImage
为什么它在项目中起作用而在另一个项目中不起作用?
答案 0 :(得分:0)
您可以遍历连接到系统的所有相机,然后获取特定设备的索引,无论是网络摄像头还是外部摄像头,并在代码中使用它。我给你一个示例代码
String cameraInformation = "";
int n = com.googlecode.javacv.cpp.videoInputLib.videoInput.listDevices();
for (int i = 0; i < n; i++) {
String info = com.googlecode.javacv.cpp.videoInputLib.videoInput
.getDeviceName(i);
//cameraInformation = info + " Device id:" + i + "\n";
system.out.println("Your information for camera:"+info+" and device index is="+i);
}
从这里你可以知道哪个设备的索引是什么,并在此代码中使用它
capture = cvCreateCameraCapture(deviceIndex);
imgCamera = cvQueryFrame(capture);
希望这有帮助