摄像头-检测二维码、拍摄快照并解码

6
我正在尝试编写一个Java程序,以利用内置的笔记本电脑摄像头或外部USB摄像头。这个程序应该能兼容PC和Mac。
我想知道是否有任何库可以处理这一切?我不想重新发明轮子,也不知道从哪里开始:1)检测摄像头,2)在检测到QR码时拍摄快照。
我熟悉用于解码条形码图像的ZXing。
我已经搜索了很多,我强烈怀疑我要找的库不存在,但这值得一问!
这是我在这里的第一个问题,希望我的问题表述清楚!
编辑:或者,如果没有这样一个库,您可以指导我如何在检测到QR码时从网络摄像头中拍摄快照吗?
谢谢!
3个回答

7

这个例子展示了如何使用Webcam Capture库和ZXing一起读取QR码数据。Webcam Capture适用于32位和64位的Windows、Linux和Mac OS,对于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());
}

0

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


0

zxing有一个ActionScript的端口,可以通过Flash使用,从而访问网络摄像头。这个端口有点老旧,并不完美,但应该能够工作。


我没有使用ActionScript的经验。它与PHP/Java有多相似?我对PHP有很好的了解,并且在Java方面有适度的能力。 - chrisby
它最类似于Javascript,真的。它并不像Java那样,或许更像PHP一点,但也不完全相同。 - Sean Owen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接