find_barcodes.py

# هذا العمل مرخص بموجب ترخيص MIT.
# حقوق النشر (c) 2013-2023 OpenMV LLC. جميع الحقوق محفوظة.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# مثال على الباركود
#
# يُظهر هذا المثال مدى سهولة اكتشاف الباركود باستخدام
# كاميرا OpenMV Cam M7. اكتشاف الباركود لا يعمل على كاميرا M4.

import csi
import image
import time
import math

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA)  # دقة عالية!
csi0.window((640, 80))  # دقة رأسية (V Res) قدرها 80 == عمل أقل (40 لضعف السرعة).
csi0.snapshot(time=2000)
csi0.auto_gain(False)  # يجب إيقاف تشغيل هذا لمنع تشبع الصورة بالضوء (image washout)...
csi0.auto_whitebal(False)  # يجب إيقاف تشغيل هذا لمنع تشبع الصورة بالضوء (image washout)...

clock = time.clock()

# يمكن تشغيل اكتشاف الباركود بالدقة الكاملة 640x480 لكاميرا OpenMV الخاصة بك
# وحدة الكاميرا OV7725. سيعمل اكتشاف الباركود أيضاً في وضع RGB565 ولكن بـ
# دقة أقل. ومع ذلك، يتطلب اكتشاف الباركود دقة أعلى
# للعمل بشكل جيد، لذا يجب دائماً تشغيله بدقة 640x480 وبتدرج الرمادي (grayscale)...


def barcode_name(code):
    if code.type == image.EAN2:
        return "EAN2"
    if code.type == image.EAN5:
        return "EAN5"
    if code.type == image.EAN8:
        return "EAN8"
    if code.type == image.UPCE:
        return "UPCE"
    if code.type == image.ISBN10:
        return "ISBN10"
    if code.type == image.UPCA:
        return "UPCA"
    if code.type == image.EAN13:
        return "EAN13"
    if code.type == image.ISBN13:
        return "ISBN13"
    if code.type == image.I25:
        return "I25"
    if code.type == image.DATABAR:
        return "DATABAR"
    if code.type == image.DATABAR_EXP:
        return "DATABAR_EXP"
    if code.type == image.CODABAR:
        return "CODABAR"
    if code.type == image.CODE39:
        return "CODE39"
    if code.type == image.PDF417:
        return "PDF417"
    if code.type == image.CODE93:
        return "CODE93"
    if code.type == image.CODE128:
        return "CODE128"


while True:
    clock.tick()
    img = csi0.snapshot()
    codes = img.find_barcodes()
    for code in codes:
        img.draw_rectangle(code.rect)
        print_args = (
            barcode_name(code),
            code.payload,
            (180 * code.rotation) / math.pi,
            code.quality,
            clock.fps(),
        )
        print(
            'Barcode %s, Payload "%s", rotation %f (degrees), quality %d, FPS %f'
            % print_args
        )
    if not codes:
        print("FPS %f" % clock.fps())

results matching ""

    No results matching ""