Example: 02-Image-Processing/02-Color-Tracking/single_color_rgb565_blob_tracking.py
import sensor
import time
import math
threshold_index = 0
thresholds = [
(30, 100, 15, 127, 15, 127),
(30, 100, -64, -8, -32, 32),
(0, 30, 0, 64, -128, 0),
]
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time=2000)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
clock = time.clock()
while True:
clock.tick()
img = sensor.snapshot()
for blob in img.find_blobs(
[thresholds[threshold_index]],
pixels_threshold=200,
area_threshold=200,
merge=True,
):
if blob.elongation() > 0.5:
img.draw_edges(blob.min_corners(), color=(255, 0, 0))
img.draw_line(blob.major_axis_line(), color=(0, 255, 0))
img.draw_line(blob.minor_axis_line(), color=(0, 0, 255))
img.draw_rectangle(blob.rect())
img.draw_cross(blob.cx(), blob.cy())
img.draw_keypoints(
[(blob.cx(), blob.cy(), int(math.degrees(blob.rotation())))], size=20
)
print(clock.fps())