# Multi Color Blob Tracking Example
#
# This example shows off multi color blob tracking using the OpenMV Cam.
import sensor, image, time, math
# Color Tracking Thresholds (L Min, L Max, A Min, A Max, B Min, B Max)
# The below thresholds track in general red/green things. You may wish to tune them...
#thresholds = [(18, 59, -5, 66, -6, 38), # generic_red_thresholds
#(27, 64, -49, -8, 9, 33), # generic_green_thresholds
#(18, 82, -3, 14, 42, 66)] # generic_yellow_thresholds
thresholds = [(4, 39, 23, 63, 16, 48), # generic_red_thresholds
(6, 46, -47, -26, 7, 39), # generic_green_thresholds
(47, 57, 1, 22, 52, 61), # generic_yellow_thresholds
(1, 39, -20, 31, -9, 27), # H
(0, 24, -17, 10, -12, 21), # S
(1, 13, -12, 10, -7, 11)] # U
#(0, 15, 0, 40, -80, -20)] # generic_blue_thresholds
# You may pass up to 16 thresholds above. However, it's not really possible to segment any
# scene with 16 thresholds before color thresholds start to overlap heavily.
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
#sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
#sensor.set_brightness(3)
#sensor.set_contrast(3)
clock = time.clock()
# Only blobs that with more pixels than "pixel_threshold" and more area than "area_threshold" are
# returned by "find_blobs" below. Change "pixels_threshold" and "area_threshold" if you change the
# camera resolution. Don't set "merge=True" becuase that will merge blobs which we don't want here.
while(True):
clock.tick()
img = sensor.snapshot()
for blob in img.find_blobs(thresholds, pixels_threshold=100, area_threshold=100):
# These values depend on the blob not being circular - otherwise they will be shaky.
print("blob.cx() = ", end=' ')
print(blob.cx(), end=' ')
print("blob.cy() = ", end=' ')
print(blob.cy(), end=' ')
print("blob.code() = ", end=' ')
print(blob.code())
if(blob.code() == 1):
print("piros")
if(blob.code() == 2):
print("green")
if(blob.code() == 4):
print("yellow")
#if(blob.code() == 8):
#print("H")
#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))
# These values are stable all the time.
img.draw_rectangle(blob.rect())
img.draw_cross(blob.cx(), blob.cy())
# Note - the blob rotation is unique to 0-180 only.
#img.draw_keypoints([(blob.cx(), blob.cy(), int(math.degrees(blob.rotation())))], size=20)
#print(clock.fps())
[szinek_felismerese_red,yellow,green.py|attachment](upload://nyrLisVWFuycqxfIA17vlehpdYA.py) (3,0 kB)
I would like to communicate with openMV h7 and arduino mega