2012-05-06 126 views
4

我目前正试图编写一个Java程序,以利用内置的笔记本电脑摄像头或外部USB摄像头。这将有望与PC和Mac兼容。摄像头 - 检测QR码,拍摄快照和解码

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

但是,我对ZXing解码条形码图像很熟悉。

我已经搜索了高和低,我强烈怀疑我找的图书馆不存在,但它的价值一个问题!

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

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

感谢

回答

0

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

+0

我有一个动作没有经验。与PHP/Java有何相似之处?我对PHP有很好的了解,并且在Java中具有适中的能力。 – chrisby

+0

真的,它与JavaScript最为相似。它不是真的像Java,也许和PHP有些相似 - 但实际上并不是这样。 –

+0

好的,谢谢你的帮助。我会看看它。 – chrisby

0

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

5

This example介绍如何用Webcam Capture库与ZXing一起读取QR码数据。摄像头捕捉兼容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()); 
}