【发布时间】: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