繁体   English   中英

从网络摄像头捕获高分辨率图像快照,在 Java

[英]Capture high-resolution image snapshots from webcam, in Java

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

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

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

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

谢谢。

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

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

这个 Java API 应该可以完成这项工作: http://webcam-capture.sarxos.pl/以下代码在项目文件夹中拍照并将其保存为 a.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"));
}
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM