【问题标题】:Webcam aplication won't close after exitting OPENCV 248 JAVA退出 OPENCV 248 JAVA 后网络摄像头应用程序不会关闭
【发布时间】:2014-02-14 23:14:14
【问题描述】:

我刚刚完成了一个应用程序,它有一个 jpanel 显示来自网络摄像头的图像,我使用了 OPENCV 2.4.8 和 VideoCapture,当我在 netbeans 中关闭框架时,程序仍然继续运行,所以我必须从 netbean 的停止底部关闭它。我第一次尝试在 Windows 中运行应用程序 *.jar 它工作正常,但是当我关闭它并再次打开它时,camara 出现问题,就像它已经被使用一样!!!有任何想法吗?

这是一段代码-

public static void main(String[] args) {
    Permisos objPer = new Permisos();
    objPer.setLocationRelativeTo(null);
    objPer.setBounds(0, 0, 468, 328);
    objPer.setVisible(true);
    objPer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    webFrame panel = new webFrame();
    pan1.add(panel);
    Mat webcam = new Mat();
    video = new VideoCapture(0);
    if (video.isOpened()) {
        while (true) {
            video.read(webcam);
            panel.MatToBufferedImage(webcam);
            panel.setSize(webcam.width() + 40, webcam.height() + 60);
            panel.repaint();
        }
    } else {
        System.out.println("no video open");
    }

}

当我将它拔下并重新插回 PC 时,我可以让 CAMARA 再次工作

【问题讨论】:

  • 您没有释放资源(网络摄像头),您已经关闭了应用程序,但网络摄像头仍然被阻止,因此当您断开连接时,附加到它的进程将关闭。尝试在关闭应用程序之前释放网络摄像头。
  • 此外,如果您的目的只是使用 USB 网络摄像头进行显示,本网站可以为您提供良好的 library 用于 java。
  • 谢谢解答,资源怎么释放?

标签: java opencv video netbeans jpanel


【解决方案1】:

搞定了! VideoCapture 类有一个名为 release() 的函数。只需将其添加到应用程序的退出...感谢 Mayur 的帮助!

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2015-03-24
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多