2012-01-19 15 views
8

Qualcuno può dire quale libreria è migliore nel riconoscimento di piccoli codici QR in condizioni di scarsa illuminazione? La piattaforma è iPhone 4/iOS 5 Ho provato entrambi i codici a barre (zxing) e le app ZBar e sembra che zxing fosse notevolmente migliore nel riconoscere i codici in condizioni "difficili". Detto questo, non è stato un test di esempio molto ampio.ZBar vs. zxing - Confronto del riconoscimento QR

Qualsiasi input sulle effettive capacità di riconoscimento dell'immagine (velocità + qualità) di entrambe le librerie sarebbe utile.

TIA.

+0

Dubito che entrambi saranno significativamente migliori in realtà, poiché i codici QR piccoli sono piuttosto facili da analizzare nello schema delle cose. zxing è particolarmente adatto ai codici QR, ma la sua porta C++ è un po 'obsoleta rispetto alla versione Java. Non ho figure dure in entrambi i casi, ma ho scritto questa parte di zxing. –

risposta

4

Per quanto mi riguarda, ZXing è migliore. Li ho usati entrambi al lavoro per l'applicazione iOS.

  1. Con ZBar ho avuto problemi con i grandi codici QR.

  2. ZXing funziona bene su iPhone 4 e 3GS, ma Zbar funziona peggio su 3GS, a volte non riesce a catturare il codice.

Ma se è necessario non solo codici QR, è necessario utilizzare ZBar.

+0

Più che la decodifica del codice QR è stata trasferita da Java a C++ in zxing, anche se in qualche modo sono d'accordo con l'ultimo punto in cui queste porte sono ancora più macchiate e stantie rispetto alla versione Java. –

+0

Dovresti dare un'occhiata a questo: ttp: //zbar.sourceforge.net/iphone/sdkdoc/optimizing.html, per quanto riguarda le prestazioni, l'uso dei valori predefiniti di ZBar creerà problemi con i grandi QRCode v40 - la soluzione è impostare la proprietà videoQuality a UIImagePickerControllerQualityTypeAlto invece del 640x480 predefinito (trovato in Apple docs UIImagepickerController. Ho provato entrambi SDK circa un anno fa, mi piace l'app di esempio ZXing che fornisce un'idea di un parser indipendente, un elenco di elementi di azione e la sicurezza aggiunta di consentire il l'utente sceglie di eseguire o meno l'azione. – Paulo

1

Si dovrebbe dare un'occhiata a this link. Per quanto riguarda le prestazioni, l'utilizzo dei valori predefiniti di ZBar creerà problemi con i grandi QRCode v40: la soluzione è impostare la proprietà videoQuality su UIImagePickerControllerQualityTypeHigh anziché sul 640x480 predefinito (documenti Apple). Come da documentazione, le dimensioni del modulo del codice a barre devono essere di almeno 3 pixel per la scansione. Ho provato entrambi gli SDK circa un anno fa, mi piace l'app di esempio ZXing, ma alla fine prima dell'invio dell'appstore, ho scoperto che generava molti messaggi di avviso che trovo difficili da rimuovere. Passare a ZBar mi ha permesso di pulire il messaggio e aggiungere funzionalità per scansionare diversi tipi di codici a barre 1D sulla mia app. Come accennato, le impostazioni predefinite non ti daranno prestazioni ottimali, ma devi controllare le opzioni, disattivare quelle che non ti servono, spogliarle dovrebbe funzionare abbastanza bene.

Sono abbastanza felice con ZBar al momento, ma probabilmente cambierò se il supporto ZXing per altri tipi di codici a barre in particolare DataMatrix, PDF417, Aztec e Maxi Code diventano disponibili.

+0

Recentemente ho effettuato il supporto per la maggior parte della 1D (escluso RSS e alcune estensioni UPC/EAN) e 2D (escluso PDF-417 che qualcun altro sta facendo) codici supportati in Java (non include Maxicode). Non sono sicuro degli avvisi di compilazione. Ce ne sono alcuni nel widget dato che è precedente all'ARC. – smparkes

+0

Verificherò ZXing di volta in volta grazie per t lui informazioni. – Paulo

+0

@Paulo Fa 'zbar' supporto' DataMatrix'? Conoscete quel simbolo da usare per questo? –

0

Ho usato entrambi. Devi usare ZXing se vuoi scannerizzare i codici a matrice di dati. Ma se non hai bisogno di data matrix, usare ZBar è un modo facile e veloce. Inoltre, è presente un'API dello scanner incorporata in iOS 7, AVCaptureMetaDataOutput che esegue la scansione dei codici 1D e 2D ad eccezione della matrice di dati. Preferirei AVCaptureMetaDataOutput per semplicità. Ecco una guida per AVCaptureMetaDataOutput.

0

Ho trovato che Zxing è molto buono negli iPad e iPhone successivi. La fotocamera dell'iPad 2 era molto lenta con Zxing, ma le fotocamere successive erano molto più veloci e hanno una messa a fuoco migliore, che migliorava notevolmente la velocità.

Un "trucco" che ho fatto con Zxing su iPad 2 è quello di modificare il rettangolo nel codice. Avrei progressivamente ingrandito ogni tentativo, quindi, anziché utilizzare il rettangolo mostrato, lo espanderei a passi, quindi verificherei 5 volte per ogni scansione. I risultati sono stati molto migliorati. Sull'iPad 3 ecc. Non era così necessario, ma ho ancora il codice ed è veloce.

Ho usato sia ZBar e ZXing in Windows utilizzando scanner (300 DPI), e ho trovato densi QRCodes un problema per ZXIng e dovevo includere il supporto ZBar. Implementare il supporto ZBar è stato molto complicato e ho dovuto scrivere la mia API, se qualcuno fosse interessato.