Come si fa la lettura programmatica di un codice a barre che viene catturato utilizzando una fotocamera del cellulare? Ad esempio, come farlo usando iPhone o Android o Java ME? Abbiamo bisogno di hardware separato per leggere il codice a barre o possiamo manipolare le immagini?Lettura di codici a barre utilizzando la foto scattata con la fotocamera del telefono cellulare
risposta
Google ha reso questo INCREDIBILMENTE semplice con le loro librerie Zebra Crossing. Essi hanno il supporto per fare la scansione attraverso le immagini sulle seguenti piattaforme:
- J2SE
- Android
e altri hanno portato a:
- J2ME
- CSharp
- CPP
- Rim
- iPhone
- Bug
Come un altro poster già accennato, su Android si potrebbe anche usare un Intent per chiamare Barcode Reader con qualcosa del tipo:
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "ONE_D_MODE");
startActivityForResult(intent, 0);
}
};
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Ovviamente è possibile leggere il codice a barre da un'immagine di esso. Probabilmente devi pensare a problemi come
- Orientamento; forse la foto non è dritta, quindi le barre non sono verticali. Inoltre, potrebbe essere capovolto ...
- Focus; cosa succede se il colpo è sfocato? Probabilmente c'è un limite in cui diventa impossibile interpretarlo in modo sicuro.
- Ritagliata; cosa succede se l'inquadratura è cattiva, quindi l'intero codice non è nemmeno nell'immagine?
Ci sono molti progetti e prodotti esistenti che risolvono questo ... Here is one, per esempio. Alcune soluzioni sembrano non essere molto sensibili a punti come quelli sopra, ma affermano di essere in grado di trovare e riconoscere i codici a barre indipendentemente dall'orientamento e dalla posizione nell'immagine, per esempio.
Per Android è molto semplice. Basta usare il servizio fornito dall'app Barcode Scanner (dipendenza). Quindi l'applicazione Barcode Scanner gestirà tutta la parte di scansione e ti restituirà semplicemente il codice.
Penso che soluzioni simili siano disponibili per altre piattaforme, ma in Android è ancora più semplice grazie alla sua architettura Intent.
I codici a barre possono essere letti mediante analisi prese dalle telecamere del telefono.
Una ben nota complicazione è che le telecamere a fuoco fisso (come sui vecchi iPhone 2G/3G e alcuni Androidi) non possono prendere la fotografia istantanea a breve distanza. Per contrastare questo, si devono usare speciali algoritmi di "deconvoluzione" e l'ultima volta che ho controllato questo non faceva parte del Zebra Crossing.
Alcuni hanno implementato soluzioni: sono a conoscenza delle seguenti app per iPhone che possono leggere UPC con telecamera a fuoco fisso: pic2shop (Benoit Maison/Vision Smarts), RedLaser (Occipital) e ShopSavvy (Big in Japan) - check li fuori e penso che tutti abbiano SDK disponibili per terze parti interessate.
Suggerirei di scegliere una soluzione che decodifica anche i codici a barre in immagini sfocate. Esistono molti telefoni Android di fascia bassa che dispongono solo di telecamere a fuoco fisso e che richiedono soluzioni di elaborazione delle immagini più sofisticate rispetto alle soglie binarie offerte dalle soluzioni software sopra elencate. Esempi di tali soluzioni più avanzate includono redlaser o Scandit barcode scanner SDK.
Scandit SDK è molto facile da integrare e viene fornito con una versione community gratuita. C'è anche un product API che rende semplice convertire i codici a barre in nomi di prodotti.
Disclaimer: Sono uno dei co-fondatori di Scandit.
Solo per un aggiornamento di tutti i neofiti in cerca di una risposta a questa domanda, Google offre ora Barcode Detection Apis tramite Google Play Services per semplificare la scansione del codice a barre utilizzando la fotocamera del telefono. Non è più necessario dipendere da Apis di terze parti.
- 1. Scanner di codici a barre per telefono cellulare per il sito Web nel modulo
- 2. Lettura codici a barre iOS Swift
- 3. Utilizzo di PIL per ruotare automaticamente l'immagine scattata con il telefono cellulare e l'accellerometro
- 4. Android - Trova l'orientamento della foto è stata scattata dalla fotocamera
- 5. Lo scanner di codici a barre Phonegap non riconosce alcun codice a barre sul telefono Windows
- 6. Carica una foto scattata dalla fotocamera a un server con dimensioni limitate
- 7. Lettura da uno scanner di codici a barre su Swing
- 8. Lettura da uno scanner di codici a barre USB
- 9. Come acquisire i valori dei codici a barre utilizzando la nuova API per codici a barre in Google Play Services?
- 10. Android: foto scattata è più grande l'anteprima
- 11. Come posso trovare l'orientamento di una foto scattata con Intent MediaStore.ACTION_IMAGE_CAPTURE?
- 12. Utilizzando la fotocamera del telefono tramite Intento: l'attività non ritorna mai?
- 13. La fotocamera non sta salvando dopo aver scattato la foto
- 14. Anteprima fotocamera Android - Come "congelare" la fotocamera?
- 15. La fotocamera dell'iPhone perde la messa a fuoco automatica quando si utilizza ZBarSDK
- 16. Ottieni immagine Uri + miniatura della foto scattata con fotocamera in Android
- 17. Come monitorare continuamente la posizione di un telefono cellulare Android?
- 18. Generazione codici 128 codici a barre con Excel VBA
- 19. Simulare uno schermo "foto scattata" flash
- 20. Codifica tramite telefono cellulare
- 21. La foto scattata viene ruotata automaticamente durante il caricamento in IOS 6.0 o iPhone
- 22. Ridurre la memoria di UIImages dalla fotocamera utilizzando strumenti
- 23. Windows (telefono) 8.1 Fotocamera Utilizzo
- 24. Lettura del codice a barre dalla webcam nell'applicazione Web PHP
- 25. Le foto scattate con la fotocamera sono molto scure su iOS con Swift
- 26. Scansione di codici a barre e Qrcode utilizzando Angular js HTML5
- 27. Ottieni data e ora quando la foto è stata scattata da dati EXIF utilizzando PIL
- 28. Codice lettore di codici a barre Delphi
- 29. ZXing Android Generare codici a barre 1D
- 30. iPhone: scattare foto con la fotocamera frontale a livello di programmazione
il problema con ZXing - l'ultima volta che ho controllato - era che non funzionava con la telecamera a fuoco fisso, che la maggior parte dei telefoni cellulari (economici || iPhone 2G) ha –