# Multi Color Blob Tracking Example
#
# This example shows off multi color blob tracking using the OpenMV Cam.
import sensor, image, time
# 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 = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds
(30, 100, -64, -8, -32, 32), # generic_green_thresholds
(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
clock = time.clock()
list1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
list2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
# 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=200, area_threshold=200):
# img.draw_rectangle(blob.rect())
# img.draw_cross(blob.cx(), blob.cy())
# print(blob.code())
blobs = img.find_blobs([thresholds[0], thresholds[1], thresholds[2]], merge=True)
i=0
for blob in img.find_blobs(thresholds, pixels_threshold=200, area_threshold=200):
if i!=0:
continue
img.draw_cross(blob.cx(), blob.cy())
img.draw_rectangle(blob.rect())
print(blob[8])
print(blob.cx(), blob.cy())
list1[i]=blob[8]
list1[i+1]=blob.cx()
i=i+1
print(list1)
print(i)
1
18391076825
@18391076825
0
声望
1
楼层
403
资料浏览
0
粉丝
0
关注
18391076825 发布的帖子
-
能不能识别不同阈值的颜色,并且返回一个数值,同时返回这个颜色的中心坐标,我很慌不知道该怎么办