Чтение штрих-кода с использованием снимка с помощью камеры мобильного телефона

Как мы делаем программное считывание штрих-кода, который фиксируется с помощью камеры мобильного телефона? Например, как это сделать с помощью iPhone или Android или Java ME? Нужно ли нам использовать отдельное оборудование для чтения штрих-кода или мы можем манипулировать изображениями?

Solutions Collecting From Web of "Чтение штрих-кода с использованием снимка с помощью камеры мобильного телефона"

Google сделал это НЕВЕРОЯТНО простым с помощью своих библиотек Zebra Crossing . Они поддерживают сканирование через изображения на следующих платформах:

  • J2SE
  • Android

И другие портировали:

  • J2ME
  • CSharp
  • CPP
  • ободок
  • iPhone
  • ошибка

В качестве другого плаката, о котором уже упоминалось, на Android вы также можете использовать Intent для вызова Barcode Reader с чем-то вроде:

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 } } } 

Штрих-коды можно прочитать с помощью анализа, сделанного с телефонных камер.

Известным осложнением является то, что камеры с фиксированным фокусом (например, на старых iPhone 2G / 3G и некоторые андроиды) не могут принимать фокусные снимки с фокусом на короткие расстояния. Чтобы противостоять этому, необходимо использовать специальные алгоритмы «деконволюции» – и в последний раз я проверял, что это не является частью перехода Zebra.

Некоторые из них внедрили решения – я знаю о следующих приложениях для iPhone, которые могут читать UPC с камерой с фиксированным фокусом: pic2shop (Benoit Maison / Vision Smarts), RedLaser (Затылочный) и ShopSavvy (Big in Japan) – проверьте их, и я Думаю, что у всех из них есть SDK для заинтересованных сторон.

Для Android это очень просто. Просто используйте сервис, предоставляемый приложением сканера штрих-кода (зависимость). Затем приложение сканера штрих-кода будет обрабатывать всю часть сканирования и просто вернет вам код.

Я думаю, что подобные решения доступны для других платформ, но в Android это еще проще благодаря своей архитектуре Intent.

Я бы рекомендовал выбрать решение, которое также декодирует штрих-коды в размытых изображениях. Существует множество недорогих телефонов Android, в которых есть только фиксированные фокус-камеры и для которых требуются более сложные решения для обработки изображений, чем двоичные пороговые значения, предлагаемые перечисленными выше программными решениями. Примеры таких более продвинутых решений включают redlaser или SDK сканера штрих-кода Scandit .

Scandit SDK очень легко интегрируется и поставляется с бесплатным изданием сообщества. Существует также API-интерфейс продукта, который упрощает преобразование номеров штрих-кода в имена продуктов.

Отказ от ответственности: Я являюсь одним из соучредителей Scandit.

Очевидно, что можно прочитать штрих-код с его изображения. Вам, вероятно, нужно подумать о таких проблемах, как

  • Ориентация; Возможно, фотография не прямолинейна, поэтому полосы не вертикальны. Кроме того, это может быть перевернуто …
  • Фокус; Что, если выстрел размыт? Вероятно, существует предел, в котором невозможно безопасно его интерпретировать.
  • Обрезанные; Что, если кадрирование плохо, так что весь код даже не на изображении?

Есть много существующих проектов и продуктов, которые решают это … Вот , например, один. Некоторые решения, похоже, не очень чувствительны к таким точкам, как те, которые указаны выше, но, как утверждают, могут найти и распознать штрих-коды независимо от ориентации и местоположения на изображении.

Просто для обновления для всех новичков, которые ищут ответ на этот вопрос, Google теперь предлагает Barcode Detection Apis через Google Play Services для упрощения сканирования штрих-кода с помощью камеры телефона. Больше не нужно зависеть от сторонней Apis.