网络摄像头 - 检测QR码,拍摄快照和解码

时间:2012-05-06 18:56:15

标签: java webcam qr-code snapshot

我目前正在尝试编写一个java程序,以利用内置的笔记本电脑摄像头或外部USB网络摄像头。这有望与PC和Mac兼容。

我想知道是否有人知道可以处理这一切的图书馆?我真的不想重新发明轮子,我不知道从哪里开始1)检测网络摄像头,2)在检测到QR码时拍摄快照。

我熟悉ZXing解码条码图像。

我搜索过高低,我强烈怀疑我寻找的库不存在,但值得一提!

我在这里的第一个问题,所以我希望很清楚!

编辑:或者,如果一个不存在,你可以指出我在检测到QR码时如何从网络摄像头拍摄快照的正确方向吗? :)

由于

3 个答案:

答案 0 :(得分:6)

This example介绍了如何使用Webcam Capture库和ZXing读取QR码数据。 Webcam Capture兼容32位和64位Windows,Linux和Mac OX。对于Linux,它还支持ARM体系结构。

代码非常简单:

Webcam webcam = Webcam.getDefault(); // non-default (e.g. USB) webcam can be used too
webcam.open();

Result result = null;
BufferedImage image = null;

if (webcam.isOpen()) {
    if ((image = webcam.getImage()) == null) {
        continue;
    }

    LuminanceSource source = new BufferedImageLuminanceSource(image);
    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
    try {
        result = new MultiFormatReader().decode(bitmap);
    } catch (NotFoundException e) {
        // fall thru, it means there is no QR code in image
    }
}

if (result != null) {
    System.out.println("QR code data is: " + result.getText());
}

答案 1 :(得分:0)

您可以使用gstreamer与相机进行互动。对于Windows,它可能是gstreamer或DirectShow。在这两种情况下,您都需要使用一些特殊的过滤器来捕获数据,在DirectShow中它将是SampleGrabber。我认为gstreamer应该提供一些类似的插件。

答案 2 :(得分:0)

zxing有一个到Actionscript的端口,可以通过Flash访问它,它可以访问网络摄像头。这个港口有点旧,不是100%完整,但应该有用。