用Java访问networking摄像头的最佳方法

我需要使用Java访问networking摄像头。 这是我想要做的

  1. 访问networking摄像头

  2. 现在,用户可以看到networking摄像头工作,因为他的脸在屏幕上可见(听说有些库不显示摄像头的video输出)

  3. 当用户点击保存button时,拍摄快照并保存

从很长一段时间,我已经尝试了很多方法来做到这一点。

  1. JMF – 现在已经死了
  2. FMJ – 现在它也死了
  3. VLCJ – 太多了,因为我没有创build一个音乐/video播放器,并期望安装VLC
  4. Xuggler – 太辛苦了
  5. JMyron – 没有工作
  6. JavaFX – 我认为它可以做到,但似乎不能

如果图书馆只是做上面提到的,我甚至感到满意,因为这对我来说就够了。 但我希望它也很简单。 真的很好,如果它不使用DLL,因为它不是平台独立的。 真的很感激,如果它可以检测相机,没有像VLCJ那样手动传递相机名称和其他信息(因为可能有成千上万的相机品牌,所以我不能创build一个1000元素的列表)。 而且,我正在创build一个桌面应用程序,而不是Web应用程序。

如果你知道这样的图书馆,请友善地告诉我。 其他图书馆(可能不适合我的所有要求,但适合基本要求)也欢迎。 请帮忙

这已经在SO上多次讨论过了。 这里有几个链接,让你开始:

SO: 从java摄像头捕获图像?

SO: 从基于Java的应用程序使用的实时video设备中捕获图像的最佳方法是什么?

openCVF applet: http : //www.colorfulwolf.com/blog/2011/07/05/accessing-the-webcam-from-inside-a-java-applet/

configuration: http : //ganeshtiwaridotcomdotnp.blogspot.in/2011/12/opencv-javacv-eclipse-project.html

我认为你正在寻找的项目是: https : //github.com/sarxos/webcam-capture (我是作者)

有一个例子正如你所描述的那样 – 在运行之后,窗口会出现在你点击“开始”button之后,你可以看到来自networking摄像头设备的实时图像并在点击“快照”后保存到文件源代码可用 ,请注意angular落里的FPS计数器可以禁用):

快照

该项目是可移植的(WinXP,Win7,Win8,Linux,Mac,树莓派),并不需要在PC上安装任何额外的软件。

API非常好,易于学习。 示例如何捕获单个图像并将其保存到PNG文件:

Webcam webcam = Webcam.getDefault(); webcam.open(); ImageIO.write(webcam.getImage(), "PNG", new File("test.png"));