导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. klt4
    K
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    klt4

    @klt4

    0
    声望
    2
    楼层
    342
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    klt4 关注

    klt4 发布的帖子

    • 请问如何使用openmv3实现光定位呢?

      想在一个纸箱里,然后顶部装固定白色光源,底部放可移动openmv,然后想得到openmv在纸箱底部的位置。

      发布在 OpenMV Cam
      K
      klt4
    • 我的openmv3,运行这段代码一秒左右后自动停止是怎么回事?
      请在这里粘贴代码
      ```import sensor, image, time
      from pyb import UART
      
      uart = UART(3, 9600)    #设置为串口3、波特率为9600发送数据
      thresholds = (235, 255) #设置监测色块阈值
      
      sensor.reset()  #摄像头初始化
      sensor.set_pixformat(sensor.GRAYSCALE)  #设置为灰度模式
      sensor.set_framesize(sensor.QQVGA)      #画幅为QQVGA即分辨率为160*120
      sensor.skip_frames(time = 2000)         #跳过起始画面,获取稳定图像
      sensor.set_auto_gain(False) #在色块检测模式下关闭自动补光
      sensor.set_auto_whitebal(False) #关闭白平衡
      clock = time.clock()
      
      xPositionNow = 0    # 初始化各坐标值
      yPositionNow = 0
      xPositionLast = 0
      yPositionLast = 0
      imageSize = 128
      
      while(True):
          clock.tick()
          img = sensor.snapshot() #获取当期所采集到的图像快照
          # 设置色块阈值,具体数值情况可以通过OpenMVIDE中的阈值调整功能来得出
          # 工具 → Mechine Vision → Threshold Editor
          # area_threshold面积阈值设置为100 ,如果色块被面积小于100,则会被过滤掉
          # pixels_threshold 像素个数阈值,如果色块像素数量小于这个值,会被过滤掉
          # merge 设置为True,合并所有重叠的寻找到的blob为一个色块
          for blob in img.find_blobs([thresholds], pixels_threshold=100, area_threshold=100, merge=True):
              # 绘制相应的图形,方便我们测试的时候使用
              img.draw_rectangle(blob.rect())
              img.draw_cross(blob.cx(), blob.cy())
              x = blob.cx() - (imageSize/2)
              y = (imageSize/2) - blob.cy()
              xPositionLast = xPositionNow
              yPositionLast = yPositionNow
              #在调试的时候为了使得像素点和坐标单位cm匹配所设置的数值
              xPositionNow = x * 0.6
              yPositionNow = y * 0.6-6
              # 测试时打印出当前坐标
              print(xPositionNow, yPositionNow, end = ',')
              # 通过串口将坐标数据发送给单片机处理,实际上发送的就是一段文本
              uart.write('X:' + str(xPositionNow) + 'Y:' +  str((-1)*yPositionNow) + ',')
              # 判断当前所在区域(A\B\C\D)
              if abs(xPositionNow) < 20 and abs(yPositionNow) < 20:
                  uart.write('A\n')
                  print('A')
              elif yPositionNow < -20 and yPositionNow < xPositionNow and (-1)*yPositionNow > xPositionNow:
                  uart.write('B\n')
                  print('B')
              elif xPositionNow > 20 and (-1)*yPositionNow < xPositionNow and yPositionNow < xPositionNow:
                  uart.write('C\n')
                  print('C')
              elif yPositionNow > 20 and xPositionNow < yPositionNow and (-1)*xPositionNow < yPositionNow:
                  uart.write('D\n')
                  print('D')
              else:
                  uart.write('E\n')
                  print('E')
              # 0.5s更新一下坐标数据
              time.sleep(500)
      发布在 OpenMV Cam
      K
      klt4