请问一下各位大佬,这个画框的程序怎么实现两个框同时存在并可以重叠在一起啊?
-
import sensor, image, time sensor.reset() # 重置传感器 sensor.set_pixformat(sensor.RGB565) # 设置像素格式为 RGB565 sensor.set_framesize(sensor.VGA) # 高分辨率 sensor.set_windowing((300, 300)) #取中间的640*80区域 sensor.set_framerate(20) # 设置帧率为30帧/秒 sensor.set_auto_whitebal(False) # 关闭自动白平衡 sensor.set_auto_gain(False) # 关闭自动增益 sensor.set_hmirror(True) sensor.set_vflip(True) sensor.skip_frames(n=50) clock = time.clock() # Tracks FPS. red_threshold = ((14, 60, 27, 88, 1, 54)) black_threshold = ((4, 17, -18, 11, -16, 16)) size_threshold = 2000 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_blob def find_max2(blobs2): max_size2=0 for blob in blobs2: if blob[2]*blob[3] > max_size2: max_blob2=blob max_size2 = blob[2]*blob[3] return max_blob2 while(True): clock.tick() # Track elapsed milliseconds between snapshots(). img = sensor.snapshot() # Take a picture and return the image. blobs = img.find_blobs([red_threshold],x_stride=100,y_stride=100) if blobs: max_blob = find_max(blobs) img.draw_rectangle(max_blob[0:4],color=(0,255,0)) # rect img.draw_cross(max_blob[5], max_blob[6]) # cx, cy blobs2 = img.find_blobs([black_threshold],x_stride=100,y_stride=100) if blobs2: max_blob2 = find_max2(blobs2) img.draw_rectangle(max_blob2[0:4],color=(0,0,255)) # rect img.draw_cross(max_blob2[5], max_blob2[6]) # cx, cy
-
看你代码逻辑,同时出现两个色块应该可以同时框出的吧,有没有运行异常的图片
-
@avqs 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。
-
此回复已被删除!
-
@fu5h 好像是我阈值没有设置好,解决了谢谢
@fu5h 在 请问一下各位大佬,这个画框的程序怎么实现两个框同时存在并可以重叠在一起啊? 中说:
@avqs 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。