• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 请问一下各位大佬,这个画框的程序怎么实现两个框同时存在并可以重叠在一起啊?



    • 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 大佬您好,代码没有问题,出现两个色块能够都识别出来,但是当两种色块重叠再一起后出现“互斥”的现象,就是说我色块一个大一个小,我像让他们两个重叠在一起也能实现出来。我给您看看效果我拍个照。