mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
This was necessary due to the increase in the frame rate. The previous method did not correlate to time. All scripts updated.
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
# Barcode Example
|
|
#
|
|
# This example shows off how easy it is to detect bar codes using the
|
|
# OpenMV Cam M7. Barcode detection does not work on the M4 Camera.
|
|
|
|
import sensor, image, time, math
|
|
|
|
sensor.reset()
|
|
sensor.set_pixformat(sensor.GRAYSCALE)
|
|
sensor.set_framesize(sensor.VGA) # High Res!
|
|
sensor.set_windowing((640, 80)) # V Res of 80 == less work (40 for 2X the speed).
|
|
sensor.skip_frames(time = 2000)
|
|
sensor.set_auto_gain(False) # must turn this off to prevent image washout...
|
|
sensor.set_auto_whitebal(False) # must turn this off to prevent image washout...
|
|
clock = time.clock()
|
|
|
|
# Barcode detection can run at the full 640x480 resolution of your OpenMV Cam's
|
|
# OV7725 camera module. Barcode detection will also work in RGB565 mode but at
|
|
# a lower resolution. That said, barcode detection requires a higher resolution
|
|
# to work well so it should always be run at 640x480 in 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 = sensor.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())
|