2014-01-24 50 views
1

我剛剛完成了具有顯示來自網絡攝像頭圖像的JPanel的應用程序後,我用OPENCV 2.4.8和VideoCapture,當我關閉在NetBeans框架下的程序仍繼續運行所以我不得不從netbean的底部關閉它。我嘗試在第一次運行的時候在Windows中運行app * .jar,但是當我關閉並再次打開它時,卡​​馬拉就有問題了,因爲它已經被使用了!有任何想法嗎?網絡攝像頭aplication不會關閉exitting OPENCV 248 JAVA

這裏是一塊代碼 -

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

+0

您還沒有釋放資源(網絡攝像頭),你已經關閉應用程序,但網絡攝像頭仍然是阻礙,所以當你斷開,連接到它的過程是封閉的。嘗試在關閉應用程序之前釋放網絡攝像頭。 – Mayur

+0

此外,如果你的目的只是使用USB攝像頭顯示,這個網站可以爲你提供很好的[library](http://webcam-capture.sarxos.pl/)。 – Mayur

+0

感謝您的回答,如何發佈資源? – user3230520

回答

0

得到它的工作的卡馬拉重新工作的! VideoCapture類具有一個名爲release()的函數。只需要添加它的應用程序的退出...感謝幫助Mayur!