2012-05-06 124 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()); 
}