【问题标题】:External camera doesn't work JavaCV外部摄像头不起作用JavaCV
【发布时间】:2013-08-04 18:38:32
【问题描述】:

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

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

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

为什么它在一个项目中有效而在另一个项目中无效?

【问题讨论】:

    标签: java opencv javacv


    【解决方案1】:

    您可以遍历连接到系统的所有摄像头,然后获取特定设备的索引,无论是网络摄像头还是外部摄像头,并在代码中使用它。我给你一个示例代码

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

    希望对你有帮助

    【讨论】:

    • 它不起作用...我想知道为什么凸轮在一个应用程序中工作而在另一个应用程序中不起作用...
    • 这是因为您在 cvCreateCameraCapture(1) 中硬编码设备索引;在这里,您假设设备索引为 1 。因此,如果我连接 2 个外部摄像头,您将如何知道您要访问哪个设备,我认为这可能不是原因。上面的代码会告诉你哪个相机有哪个索引然后相应地使用它希望它有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多