关于openmv颜色识别的问题
-
OPENMV识别红色的时候会有问题,看见墙壁也是红色,请问大神们这个是镜头的问题还是程序的问题?我是用来识别红色的灯
-
请附上详细的代码以及你的图像。
-
import sensor, image, time
import json
from pyb import UARTFor color tracking to work really well you should ideally be in a very, very,
very, controlled enviroment where the lighting is constant...
red_threshold = (100, 92, 104, -5, -7, 94)
You may need to tweak the above settings for tracking green things...
Select an area in the Framebuffer to copy the color settings.
sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # 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.uart = UART(3, 115200)
def find_max(blobs): #寻找最大的色块
max_size=0
for blob in blobs:
if blob[2]*blob[3] > max_size:
max_blob=blob
max_size = blob[2]*blob[3]
return max_blobwhile(True):
clock.tick() # Track elapsed milliseconds between snapshots().
img = sensor.snapshot() # Take a picture and return the image.blobs = img.find_blobs([red_threshold]) if blobs: max_blob = find_max(blobs) print('sum : %d'% len(blobs)) data=[] for b in blobs: # Draw a rect around the blob. img.draw_rectangle(max_blob[0:4]) # rect img.draw_cross(max_blob[5], max_blob[6]) # cx, cy data.append((b.cx(),b.cy())) #{(1,22),(-3,33),(22222,0),(9999,12),(0,0)} data_out = json.dumps(set(data)) uart.write(data_out +'\n') print(data_out) else: print("not found!")
-
@yuan 墙壁是红色的
-
@yuan 大神帮忙看看,墙壁是白色,但是摄像头可以识别到,我阈值设定是红色的,我是根据一个红色信标灯调的阈值。
-
你的阈值显然是错的。
(Lmin , lmax, Amin,amax,bmin,Bmax)
最小值,最大值,你设置的阈值是反着的。