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



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

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

我试过:- JMF:糟糕,不支持自动检测附加的网络摄像头。- FMJ:使用lite - civil网络摄像头支持。—li - 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/下面的代码获取一张图片,并将其作为.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,这个库在这里你可以看到它是如何工作的

最新更新