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

用Java从网络摄像头捕获高分辨率图像快照,java,webcam,image-capture,Java,Webcam,Image Capture,有谁知道Java库可以用于从网络摄像头捕获高分辨率图像快照 更准确地说: -检测可用的网络摄像头(笔记本电脑可能有内置摄像头和通过USB连接连接的外部摄像头) -选择要使用的网络摄像头。 -检测图像捕获的可用分辨率(例如:对于带有1.3 Mp传感器的网络摄像头,分辨率高达1280x1024)。 它们通常比用于视频捕获的要大得多(例如:对于同一网络摄像头,高达640x480)。 -选择要使用的解决方案。 -根据请求(调用API函数),使用选定分辨率从选定相机捕获快照 我试过: -JMF:糟透了,不

有谁知道Java库可以用于从网络摄像头捕获高分辨率图像快照

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

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

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


谢谢。

下面的开源项目,webcamstudio在使用Java支持网络摄像头方面做得很好。也许从这里可以得到一些想法。

< P> OpenCV是一个流行的C++计算机视觉库。但是,它们也有Java绑定。


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

您可以使用该库,您可以通过示例了解它的工作原理。

此Java API应该完成以下工作: 下面的代码拍摄一张图片并将其保存为项目工作区文件夹中的.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"));
}
}

您不能使用本机Windows框架的任何特定原因?本机Windows也不支持从网络摄像头捕获>640 x 480分辨率的视频。本例显示了捕获视频流(我已经可以使用lti civil完成此操作)。我会尝试openCV,如果失败,我会尝试jMyron,谢谢你提供的信息。谢谢,但我想我会先尝试openCV(推荐如下)。@Michael,你能分享你的研究吗?你找到好的java库了吗?