我在用openmv识别色块的时候为什么他会把中央坐标【80,60】识别成找到的色块啊,明明画面里什么都没有
-
# Blob Detection and uart transport import sensor, image, time #from pyb import UART from machine import UART import json # For color tracking to work really well you should ideally be in a very, very, # very, controlled enviroment where the lighting is constant... threshold = (200, 255) # You may need to tweak the above settings for tracking green things... # Select an area in the Framebuffer to copy the color settings. roi = (15, 0, 130, 120) sensor.reset() # Initialize the camera sensor. sensor.set_pixformat(sensor.GRAYSCALE) # use RGB565. sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed. sensor.skip_frames(10) # Let new settings take affect. sensor.set_auto_whitebal(False) # turn this off. clock = time.clock() # Tracks FPS. # OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7, OpenMV2 M4 的UART(3)是P4-TX P5-RX uart = UART(3, 9600) #OpenMV RT 注释掉这一行,用下一行UART(1) #uart = UART(1, 115200) #OpenMV RT 用UART(1)这行,注释掉上一行UART(3) # OpenMV RT 只有串口UART(1),对应P4-TX P5-RX; OpenMV4 H7 Plus, OpenMV4 H7, OpenMV3 M7 的UART(1)是P0-RX P1-TX def find_max(blobs): max_size=0 for blob in blobs: if blob.pixels() > max_size: max_blob=blob max_size = blob.pixels() return max_blob while(True): clock.tick() img = sensor.snapshot().lens_corr(1.8) img.draw_rectangle(roi, color=(255, 255, 255)) blobs = img.find_blobs([threshold],roi=roi) if blobs: #如果找到了目标颜色 for b in blobs: #迭代找到的目标颜色区域 # Draw a rect around the blob. img.draw_rectangle(b[0:4],color=(0,0,0)) # rect #用矩形标记出目标颜色区域 #print('point:',b[5], b[6]) '''if blobs: max_blob=find_max(blobs)''' '''img.draw_rectangle(max_blob.rect(),color=(0,0,0)) img.draw_cross(max_blob.cx(), max_blob.cy())''' print('sum :', len(blobs)) output_str="[%d,%d]" % (b[5],b[6]) #方式1 #output_str=json.dumps([max_blob.cx(),max_blob.cy()]) #方式2 print('you send:',output_str) uart.write(output_str+'\r\n') else: print('not found!')
-
阈值不对吧,你要找白色的东西?