في الآونة الأخيرة ، ظهرت فكرة للحفظ على TSD في مستودع ومحاولة استخدام الهواتف المحمولة الرخيصة العادية (حتى بدون حماية الغبار) بدلاً من ذلك. أخطط لتنفيذ الواجهة في شكل تطبيق ويب (صفحات ويب عادية ، HTML + CSS + JS).
لكي تنجح كل شيء ، تحتاج إلى تعليم صفحات الويب لمسح الرموز الشريطية عبر كاميرا الهاتف. الحصول على البيانات من الكاميرا بسيط للغاية. المهمة الرئيسية هي معالجة الإطار. تحت القط هناك مراجعة للحلول الجاهزة الحالية والكثير من الصور.

quaggaJS
المراجع:
في نتائج البحث - هذا هو الخيار الأول. تم تجهيز المكتبة مع خوارزمية البحث الباركود في الصورة. يدعم الباركود أحادي البعد: EAN ، الكود 128 ، الكود 39 ، EAN 8 ، UPC-A ، UPC-C ، I2of5 ، 2of5 ، الكود 93 ، CODABAR. يدعم التثبيت عبر NPM أو Bower. تتكون واجهة المكتبة من كائن Quagga واحد يحتوي على 7 طرق ، كل شيء بسيط للغاية.
توجد
صفحة على
موقع المشروع حيث يمكنك تنزيل العينات وتجربة المكتبة أثناء العمل. نحن نحاول عينة رقم 1. بعض الإعدادات تحتاج إلى تحديد ، حسنا ، لا شك.

نتيجة للإطلاق ، لم يكن من الممكن تحديد الباركود ، ولكن تم تحديد موقع الباركود جيدًا.
نحن نحاول عينة رقم 2. بطريقة ما بفرح.

نحن نحاول تغيير الإعدادات - ضع "Patch-Size" -> "Large". رقم يتم إعطاء النتيجة الصحيحة عن طريق تحديد `الدقة (جانب طويل) = 800px`. ومع ذلك ، في الواقع ، الجانب الأكبر هو 640 بكسل.

ربما يعمل بشكل أفضل مع صور عالية الدقة. حسنًا ، نجعل العينة الثالثة (العينة رقم 3).

بصراحة ، لا أعرف نوع الباركود الذي تمت تجربته وحاول استخدام جميع الإعدادات - لم يتم تحديد المقر الرئيسي. حسنًا ، لنجرب عينة أخرى عالية الدقة (نموذج 4):

لسبب ما ، لم يكن من الممكن تحقيق نتيجة بأي إعدادات.
لنجرب عينة "نظيفة" من المكتبة التالية (نموذج رقم 5):

تم الاعتراف بهذا واحد.
جافا سكريبت قارئ الباركود
المراجع:
هذه هي المكتبة الثانية في هذه القضية. التنسيقات المعروفة: Code128 (UCC / EAN-128) و Code93 و Code39 و Standard / Industrial 2 of 5 و Interleaved 2 of 5 و Codabar و EAN-13. يدعم التثبيت عبر NPM ، أو يمكنك ببساطة توصيله بالشكل التالي:
<script src="//unpkg.com/javascript-barcode-reader/dist/javascript-barcode-reader.min.js"></script>
أو يمكنك تنزيل ملف واحد فقط:
javascript-barcode-reader.min.js بحجم 10 445 بايت.
يحتوي المشروع على
صفحة تحتوي على أمثلة ، ولكن تم الحصول على الصور عن طريق إنشاء أكواد ، وليس من الكاميرا. هذا لن ينفع بالنسبة لنا.
رمز لاختبار المكتبةbarcode-scan.html
<html> <head> <meta http-equiv="content-language" content="ru" /> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <script src="//unpkg.com/javascript-barcode-reader/dist/javascript-barcode-reader.min.js"></script> <script type="text/javascript" src="barcode-scan.js"></script> </head> <body onload='onLoadPage()'> <img id="img1" src="scan02.png" /> </body> </html>
barcode-scan.html
function onLoadPage() { Image = document.getElementById('img1'); javascriptBarcodeReader( Image , { barcode: 'EAN-13',
عينة رقم 1. إخراج المكتبة إلى وحدة التحكم "خطأ: فشل في استخراج الباركود!".
عينة رقم 2. إخراج المكتبة إلى وحدة التحكم "خطأ: فشل في استخراج الباركود!".
عينة رقم 3. إخراج المكتبة إلى وحدة التحكم "خطأ: فشل في استخراج الباركود!".
عينة رقم 4. تصدر المكتبة "601" إلى وحدة التحكم.
هم ... ربما لم يتم توصيل المكتبة بشكل صحيح؟ لنجرب هذه العينة:

عينة رقم 5. تصدر المكتبة "10023" إلى وحدة التحكم. بارد.
Dynamsoft قارئ الباركود
موقع المشروعتتم كتابة جوهر المكتبة في WebAssembly (WASM) ومغلفات JavaScript فقط ، وهو أمر غير مثير للاهتمام. يعرف التنسيقات:
1D: الرمز 39 ، الرمز 93 ، الرمز 128 ، كودبار ، EAN-8 ، EAN-13 ، UPC-A ، UPC-E ، معشق 2 من 5 (ITF) ، صناعي 2 من 5 (الرمز 2 من 5 الصناعة ، المعيار 2 من 5 ، رمز 2 من 5) ، ITF-14 ؛
2D: PDF417 ، رمز الاستجابة السريعة ، DataMatrix ، ازتيك.
هذه مكتبة مدفوعة ، متاحة عن طريق الاشتراك ، وتكلف جميع أنواع الباركود
2199 دولارًا سنويًا ، إذا كانت الرموز أحادية البعد فقط ، فإن التكلفة تنخفض إلى
1099 دولارًا في السنة . هناك
page1 و
page2 للتجارب.
عينة رقم 1. نعم الجواب صحيح. المنطقة محاطة بوضوح.

عينة رقم 2. نعم الجواب صحيح مرة أخرى. المنطقة محاطة بدائرة بوضوح تام.

عينة رقم 3. الآن نحن نعرف نوع هذا الباركود.

عينة رقم 4. الجواب صحيح أيضا.

وعلى ما يبدو ، يمكنك أن تحب هذا:

ومع ذلك ، تم التعرف على العينة الأولى مع وجود خطأ. وحاول مرة أخرى مثل هذا (
الصورة الأصلية ضبابية للغاية ):

الآن نعلم أن هناك مكتبة واحدة على الأقل تعمل ، وإن كانت مكتبة مدفوعة.
tobytailor get_barcode_from_image.js
المراجع:
مكتبة صغيرة بسيطة. يعرف تنسيق الباركود واحد فقط: UPC. إذا قمت بإضافة الصفر لأول مرة إلى رمز من هذا النوع ، فستحصل على EAN-13.
نحن نحاول العينة الأولى:

النتيجة: 000204892734. يتم التعرف على النموذج.
أخذ العينة رقم 2 (EAN-13). فقط للعمل ، تحتاج إلى كتابة السطر 32 من البرنامج النصي مثل هذا:
ctx.drawImage(img, 0, 0, width, height);
النتيجة: XXXXXXXXXXXXX. عينة غير معترف بها.
خذ ما يلي:

النتيجة: XXXXXXXXXXXXX. غير معترف بها.
لنجرب شيئًا بسيطًا:

النتيجة: غير معترف بها. ربما يحتاج إلى تقديمه بطريقة ، بالإضافة إلى الرمز الشريطي ، لا يوجد شيء في الصورة ، باستثناء المساحة الإضافية.

النتيجة: 022334545453.
وآخر EAN-13:

معترف به جزئيا.
EddieLa BarcodeReader
جيثبمكتبة أخرى مجانية ، مع نداء قليل من المؤلف:
إذا كنت تحب و / أو تستخدم هذا المشروع لأغراض تجارية ، ففكر في التبرع لدعم عملي.
إذا كنت تحب و / أو تستخدم هذا المشروع لأغراض تجارية ، ففكر في التبرع لدعم عملي.
تعرف التنسيقات: Code128 و Code93 و Code39 و Standard / Industrial 2 of 5 و Interleaved 2 of 5 و Codabar و EAN-13. لديه
صفحة للتجريب.
عينة رقم 1. يتم تعريف النطاق والنوع بشكل صحيح. تم التعرف على الكود مع وجود خطأ.

عينة رقم 2. نتيجة جيدة. معترف بها بشكل صحيح: المنطقة ، نوع الباركود والباركود نفسه.

عينة رقم 3. سلبيا لا يمكنها القيام بذلك بزاوية.

عينة رقم 4. جيد جدا ، نمط المعترف بها.

عينة رقم 5. نمط المعترف بها.

حسنا ، يستحق الثناء. حدثت التغييرات الأخيرة في المكتبة منذ 3 سنوات.
WebCodeCamJS
المراجع:
مكتبة مجانية (رخصة معهد ماساتشوستس للتكنولوجيا). يعرف الأنواع التالية من الباركود أحادي البعد: Code-128 ، Code-93 ، Code-39 ، Codabar ، EAN-13. قادرة على التعرف على رموز QR. توجد على صفحة المشروع فرصة لتجربة المكتبة.
نموذج رقم 1: غير معترف بها.

نموذج رقم 2: التعرف بشكل صحيح.

نموذج رقم 3: غير معترف بها.
نموذج رقم 4: غير معترف بها.
نموذج رقم 5: المعترف بها بشكل صحيح.

تبدو القدرة على التعرف على رموز QR مثيرة للاهتمام ، لذا قمت بجمع 6 عينات لاختبار هذه المكتبات واللاحقة:

نموذج رقم 1: لا شيء.
نموذج رقم 2: لا شيء.
عينة 3: لا شيء.
عينة 4: لا شيء.
نموذج رقم 5: لا شيء.
نموذج رقم 6: معترف بها.

ويب QR
صفحة المشروعمكتبة مجانية. أعلن جيل والاعتراف رموز QR. توجد على صفحة المشروع فرصة لتجربة المكتبة.
لم يتم التعرف على أي من العينات الستة. يوجد منشئ رمز QR على الصفحة ، وهنا يتم التعرف على الرموز التي تم الحصول عليها باستخدام هذا المولد.
محدث معا ، في التعليقات (بفضل
TiesP ) ، كان من الممكن إثبات أن الخوارزمية تعمل ، فقط لا يعرف كيفية تحديد اتجاه الكود. مع وضع ذلك في الاعتبار ، فإن النتائج الجديدة هي كما يلي:
نموذج رقم 1 - غير معترف به.
نموذج رقم 2 - غير معترف بها.
نموذج رقم 3 - غير معترف بها.
نموذج رقم 4 - غير معترف به.
نموذج رقم 5 - المعترف بها.
نموذج رقم 6 - المعترف بها.

من الواضح أنه لا تزال هناك بعض القيود على الخلفية ، حيث تم تحديد كل من العينة والعينة المقدمة في التعليقات على الورق:

يؤدي
هذا كل ما وجدته. عثر على العديد من التطبيقات بناءً على واحد مما سبق ، على سبيل المثال
هذا واحد . وأكرر أن معيار البحث الرئيسي هو أنه يجب تنفيذ جميع الأعمال من جانب العميل من خلال متصفح ودون أي تثبيت إضافي. بمعنى أنه يجب تنفيذ الحل في JavaScript و / أو Wasm (وبالتالي فإن
ZBar غير مناسب).
إذا كنت تعرف مكتبة تفي بهذه المتطلبات ولا توجد في المقالة ، فيرجى إبلاغها.
تصنيف المكتبة الناتج كما يلي:

تم نشر المقال بفضل متجر الإضاءة
Devine Light على الإنترنت .