Reconocimiento de códigos

Tutorial en video 15 - Reconocimiento de códigos: https://singtown.com/learn/50017/

Código QR

http://cli.im/\ Puede usar el generador de códigos QR de Forage (cli.im) para generar el contenido que desee.

import csi, image
csi0 = csi.CSI()

csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QQVGA) # puede ser QVGA en M7...
csi0.snapshot(frames=30)
csi0.auto_gain(False) # debe desactivarse para evitar que la imagen se sature...
while(True):
    img = csi0.snapshot()
    img.lens_corr(1.8) # una intensidad de 1.8 es adecuada para el lente de 2.8 mm.
    for code in img.find_qrcodes():
        print(code)

{x:46, y:38, w:78, h:81, payload:"openmv", version:1, ecc_level:2, mask:6, data_type:4, eci:0}

Código de barras

http://barcode.tec-it.com/zh/Code128?data=OpenMV\ Puede usar este sitio web para generar códigos de barras.

import csi, image, time, math
csi0 = csi.CSI()

csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.VGA) # ¡Alta resolución!
csi0.window((640, 80)) # Una resolución vertical de 80 == menos trabajo (40 para el doble de velocidad).
csi0.snapshot(frames=30)
csi0.auto_gain(False)  # debe desactivarse para evitar que la imagen se sature...
csi0.auto_whitebal(False)  # debe desactivarse para evitar que la imagen se sature...
clock = time.clock()

# La detección de códigos de barras puede ejecutarse a la resolución completa de
# 640x480 del módulo de cámara OV7725 de su OpenMV Cam. La detección de códigos
# de barras también funciona en modo RGB565, pero a una resolución menor. Dicho
# esto, la detección de códigos de barras requiere una resolución más alta para
# funcionar bien, por lo que siempre debe ejecutarse a 640x480 en escala de grises...

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())

Data Matrix

import csi, image
csi0 = csi.CSI()

csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QQVGA) # puede ser QVGA en M7...
csi0.snapshot(frames=30)
csi0.auto_gain(False) # debe desactivarse para evitar que la imagen se sature...
while(True):
    img = csi0.snapshot()
    img.lens_corr(1.8) # una intensidad de 1.8 es adecuada para el lente de 2.8 mm.
    for code in img.find_datamatrices():
        print(code)

{x:48, y:27, w:58, h:56, payload:"OpenMV", rotation:0.052360, rows:14, columns:14, capacity:8, padding:1}

results matching ""

    No results matching ""