识别色块跟tof光学测距拓展板联合使用后读取距离的问题
-
通过看教程将两个示例合并使用,但是想实现识别到色块然后才读取距离,然后串口再将距离发送给stm32,大佬,麻烦帮忙修改一下代码,惯我一次,我在咱家已经买了两个摄像头跟一大堆元件了。
import sensor, image, time, math threshold_index = 0 # 0 for red, 1 for green, 2 for blue thresholds = [(30, 100, 15, 127, 15, 127), # generic_red_thresholds (30, 100, -64, -8, -32, 32), # generic_green_thresholds (0, 30, 0, 64, -128, 0)] # generic_blue_thresholds from machine import I2C from vl53l1x import VL53L1X import time 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() i2c = I2C(2) distance = VL53L1X(i2c) # 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. "merge=True" merges all overlapping blobs in the image. while(True): clock.tick() img = sensor.snapshot() for blob in img.find_blobs([thresholds[threshold_index]],roi=(150,90,80,80), pixels_threshold=200, area_threshold=200, merge=True): # These values depend on the blob not being circular - otherwise they will be shaky. 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()) print("range: mm ", distance.read()) time.sleep_ms(50)
-
此回复已被删除!
-
大佬,惯我一次吧,真的在咱家买了好多东西
-
大概就是这个意思:
while(True): clock.tick() img = sensor.snapshot() blobs = img.find_blobs() if blobs: d = distance.read() uart.write(str(d)) for b in blobs: xxx