Считывание штрих-кода с использованием камеры, снятой с мобильного телефона - PullRequest
10 голосов
/ 27 августа 2009

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

Ответы [ 6 ]

19 голосов
/ 27 августа 2009

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

  • J2SE
  • Android

и другие пользователи портировали на:

  • J2ME
  • CSharp
  • CPP
  • Rim
  • 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
        }
    }
}
4 голосов
/ 07 декабря 2009

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

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

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

2 голосов
/ 27 августа 2009

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

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

1 голос
/ 25 сентября 2012

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

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

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

0 голосов
/ 04 сентября 2015

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

0 голосов
/ 27 августа 2009

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

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

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

...