@fu5h 好像是我阈值没有设置好,解决了谢谢
@fu5h 在 请问一下各位大佬,这个画框的程序怎么实现两个框同时存在并可以重叠在一起啊? 中说:
@avqs 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。
@fu5h 好像是我阈值没有设置好,解决了谢谢
@fu5h 在 请问一下各位大佬,这个画框的程序怎么实现两个框同时存在并可以重叠在一起啊? 中说:
@avqs 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。
@avqs 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。
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