0

我有一个使用外部摄像头的 JavaCV 应用程序,但它不工作...结果是来自摄像头的黑色图像...我有另一个使用相同代码的项目,它工作正常...我不明白为什么它在我的新项目中不起作用

capture = cvCreateCameraCapture(1);
imgCamera = cvQueryFrame(capture);

代码很简单,首先从外部网络摄像头捕获图像并将其设置为 IplImage

为什么它在一个项目中起作用而在另一个项目中不起作用?

4

1 回答 1

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);

希望这可以帮助

于 2013-08-04T10:38:32.277 回答