openmv/scripts/examples/04-Barcodes/find_datamatrices_w_lens_zoom.py

42 lines
1.3 KiB
Python

# This work is licensed under the MIT license.
# Copyright (c) 2013-2023 OpenMV LLC. All rights reserved.
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# Find Data Matrices w/ Lens Zoom Example
#
# This example shows off how easy it is to detect data matrices using the
# OpenMV Cam M7. Data matrices detection does not work on the M4 Camera.
import sensor
import time
import math
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.VGA)
sensor.set_windowing((320, 240)) # 2x Zoom
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()
while True:
clock.tick()
img = sensor.snapshot()
matrices = img.find_datamatrices()
for matrix in matrices:
img.draw_rectangle(matrix.rect(), color=(255, 0, 0))
print_args = (
matrix.rows(),
matrix.columns(),
matrix.payload(),
(180 * matrix.rotation()) / math.pi,
clock.fps(),
)
print(
'Matrix [%d:%d], Payload "%s", rotation %f (degrees), FPS %f' % print_args
)
if not matrices:
print("FPS %f" % clock.fps())