5

任何人都知道可用于从网络摄像头捕获高分辨率图像快照的 Java 库?

更准确地说: - 检测可用的网络摄像头(笔记本电脑可能有一个内置的和一个通过 USB 连接连接的外部网络摄像头) - 选择一个网络摄像头来使用。- 检测图像捕获的可用分辨率(例如:具有 1.3 Mp 传感器的网络摄像头高达 1280x1024)。它们通常比 VIDEO 捕获要大得多(例如:同一网络摄像头最高可达 640x480)。- 选择要使用的分辨率。- 根据请求(调用 API 函数),以选定的分辨率从选定的摄像机捕获快照。

我试过: - JMF:糟透了,不支持自动检测连接的网络摄像头。- FMJ:使用 LTI-CIVIL 支持网络摄像头。- LTI-CIVIL:仅支持视频捕获。代码也很旧(如果我没记错的话,是 2007 年)。使用用 C++ 编写的本机库来访问网络摄像头。用于 Windows 的 DirectX 和用于(显然)Linux 的 Video4Linux。但是查看 C++ 代码,很明显它是面向视频流的,这不是我的目的(正如我需要的描述中所反映的那样)

如果有人能指出一个适合我需要的配置文件的 Java 库,我将不胜感激。

谢谢。

4

4 回答 4

2

openCV 是一个流行的 C++ 计算机视觉库。但是,它们也有 Java 绑定。 http://code.google.com/p/javacv/

OpenCV 还允许您访问图像和视频处理以及从多个网络摄像头捕获图像和视频。

于 2011-07-10T15:56:50.437 回答
1

这个 Java API 应该可以完成这项工作:http://webcam-capture.sarxos.pl/ 以下代码拍摄一张照片并将其保存为项目工作区文件夹中的 .png 文件。请务必查看创建者在其网站上的其他示例。

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import com.github.sarxos.webcam.Webcam;

public class TakePictureExample {

public static void main(String[] args) throws IOException {

    // get default webcam and open it
    Webcam webcam = Webcam.getDefault();
    webcam.open();

    // get image
    BufferedImage image = webcam.getImage();

    // save image to PNG file
    ImageIO.write(image, "PNG", new File("test.png"));
}
}
于 2016-05-14T20:47:10.477 回答
0

以下开源项目webcamstudio http://code.google.com/p/webcamstudio/在使用 Java 支持网络摄像头方面做得很好。也许从那里得到一些想法。

于 2011-07-10T14:12:08.040 回答
0

你可以使用JMyron,这个库在这里,你可以看到它是如何与这个例子一起工作的

于 2011-07-10T16:05:32.723 回答