导航

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

    e1hr 发布的帖子

    • RE: openMV在线串口通讯断联问题

      @e1hr 0_1724742979379_微信4.png 断开指的是这里的断开

      发布在 OpenMV Cam
      E
      e1hr
    • openMV在线串口通讯断联问题

      使用openMVIDE在线进行RS232数据通讯,发送数据约1200个,经常会收完数据后就断开了,想咨询:1,造成openMVIDE断开的原因可能有哪些?2、openMVIDE突然断开后,相当于脱机运行,程序是重新启动了还是接着运行了?主要是想知道重新设置摄像头没,因为从现在结果看像是接着运行了,理论上觉得应该重新启动呀

      发布在 OpenMV Cam
      E
      e1hr
    • OpenMV4 H7 plus 可以在VGA大小中用find circles 和find_rects函数吗

      OpenMV4 H7 plus 可以在VGA大小中用find circles 和find_rects函数吗

      发布在 OpenMV Cam
      E
      e1hr
    • 关于摄像头在高低亮度环境下上电,获取图像亮度不同的问题

      摄像头设置如下:

       sensor.reset()
       sensor.set_pixformat(sensor.GRAYSCALE)
       sensor.set_framesize(sensor.VGA)
      sensor.set_auto_gain(False,gain_db=1)
      sensor.set_auto_whitebal(False) # turn this off.
      sensor.set_auto_exposure(False,exposure_us=18000)
       sensor.skip_frames(time = 2000)
      

      应用环境:获取物体对应点的灰度值;问题现象:如果上电时所需获取图像的物体处的环境比较亮,那么得灰度值1,再将环境变暗得灰度值2,如果上电时所需获取图像的物体处的环境比较暗,那么得灰度值3,再将环境变暗得灰度值4,环境的亮和暗是固定的亮度,现在就是灰度值1和灰度值3相差较大,灰度值2和灰度值4相差较大,有没有什么设置,使其忽略上电时的环境明暗,在同等亮度级别得到差不多大的灰度值

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 圆识别报错的问题,不知道原因是什么

      @kidswong999 谢谢!你好,请问如何理解img.find_circles(threshold = 2000, x_margin =5, y_margin
      = 10, r_margin = 5,r_min = 2, r_max = 5, r_step = 2)这个函数的 x_margin, y_margin, r_margin 这3个参数,对这句“控制检测到接近圆的合并调节”不太理解,如果圆有大有小呢?

      发布在 OpenMV Cam
      E
      e1hr
    • 圆识别报错的问题,不知道原因是什么
      sensor.reset()  #摄像头初始化
      #.set_pixformat(sensor.RGB565)  #设置为彩色模式
      #sensor.set_framesize(sensor.QQVGA)      #画幅为QQVGA即分辨率为160*120
      
      
      sensor.set_pixformat(sensor.GRAYSCALE)
      #sensor.set_framesize(sensor.QVGA)
      
      
      sensor.set_framesize(sensor.VGA)
      sensor.skip_frames(time = 2000)         #跳过起始画面,获取稳定图像
      sensor.set_auto_gain(False) #在色块检测模式下关闭自动补光
      sensor.set_auto_whitebal(False) #关闭白平衡
      clock = time.clock()
      
      while(True):
          #lens_corr 为了去除畸变, 1.8 是默认参数,可以根据自己实际情况调整
      #    img = sensor.snapshot().lens_corr(1.8)
          img = sensor.snapshot()
          # 圆形类有 4 个参数值: 圆心(x, y), r (半径)和 magnitude(量级);
          # 量级越大说明识别到的圆可信度越高。
          # `threshold` 参数控制找到圆的数量,数值的提升会降低识别圆形的总数。
          # `x_margin`, `y_margin`, and `r_margin`控制检测到接近圆的合并调节.
          # r_min, r_max, and r_step 用于指定测试圆的半径范围。
          for c in img.find_circles(threshold = 2000, x_margin =5, y_margin
          = 10, r_margin = 5,r_min = 2, r_max = 5, r_step = 2):
              #画红色圆做指示
              img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
              print(c)
      

      #打印圆形的信息0_1716782110155_论坛咨询.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • 编写滤波函数报错问题,报错如图片
      # Untitled - By: admin - 周三 5月 22 2024
      
      import sensor, image, time
      
      from ucollections import deque
      from pyb import Timer
      import time
      
      # 假设的温度读数函数
      def read_temperature():
          return 25.5  # 这应该是一个函数,用于读取温度传感器的值
      
      # 温度过滤函数
      def temperature_filter(queue_size=10):
          # 创建一个固定大小的队列
          temperature_queue = deque(maxlen=queue_size)
      
          # 添加初始温度数据
          temperature_queue.append(read_temperature())
      
          # 创建一个定时器每隔一定时间更新温度数据
          def update_temperature(timer):
              temperature_queue.append(read_temperature())
      
          # 定时器触发间隔,单位为毫秒
          update_interval = 1000  # 1秒更新一次
      
          # 创建定时器并设置回调函数
          timer = Timer(0, update_interval, update_temperature)
          timer.start()
      
          while True:
              # 等待并在队列满时停止,或者可以设置一个超时时间
              while len(temperature_queue) < queue_size:
                  time.sleep(1)
      
              # 计算并返回过滤后的平均温度
              return sum(temperature_queue) / len(temperature_queue)
      
      # 使用温度过滤函数
      avg_temperature = temperature_filter()
      print("平均温度:", avg_temperature)
      
      

      0_1716363640024_错误显示.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 圆识别不准确的问题,如何识别想要的圆

      @e1hr 0_1714275017520_qqq.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • 圆识别不准确的问题,如何识别想要的圆
      from pyb import UART
      import json
      
      sensor.reset()  #摄像头初始化
      sensor.set_pixformat(sensor.RGB565)  #设置为彩色模式
      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()
      
      while(True):
          #lens_corr 为了去除畸变, 1.8 是默认参数,可以根据自己实际情况调整
      #    img = sensor.snapshot().lens_corr(1.8)
          img = sensor.snapshot()
          # 圆形类有 4 个参数值: 圆心(x, y), r (半径)和 magnitude(量级);
          # 量级越大说明识别到的圆可信度越高。
          # `threshold` 参数控制找到圆的数量,数值的提升会降低识别圆形的总数。
          # `x_margin`, `y_margin`, and `r_margin`控制检测到接近圆的合并调节.
          # r_min, r_max, and r_step 用于指定测试圆的半径范围。
          for c in img.find_circles(threshold = 2500, x_margin = 10, y_margin
          = 10, r_margin = 10,r_min = 2, r_max = 20, r_step = 2):
              #画红色圆做指示
              img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
              print(c) #打印圆形的信息
      
      ![0_1714274915088_qqq.PNG](https://fcdn.singtown.com/3bb02f0a-3131-4e11-b816-bbc4adb98e07.PNG) 
      

      如何识别自己想要的圆?

      发布在 OpenMV Cam
      E
      e1hr
    • openMV IDE自动断开问题

      使用openMV过程中,经常出现稍动一下硬件,openMV IDE就自动断开连接的情况,无法实时查看打印数据,不知道什么原因引起的

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 虚拟U盘数据和代码丢失问题

      @e1hr 第二张图片不对,打开main出现代码如下:

      main.py -- put your code here!

      import pyb, time
      led = pyb.LED(3)
      usb = pyb.USB_VCP()
      while (usb.isconnected()==False):
      led.on()
      time.sleep_ms(150)
      led.off()
      time.sleep_ms(100)
      led.on()
      time.sleep_ms(150)
      led.off()
      time.sleep_ms(600)

      发布在 OpenMV Cam
      E
      e1hr
    • 虚拟U盘数据和代码丢失问题

      重新上电后发现数据和代码丢失,出现默认的main.c,不知道问题在哪?0_1698975449590_111.PNG 0_1698975460258_222.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 查找圆形图案中心坐标报错

      @kidswong999 请问用findcircles()函数是不是需要知道圆大概占多少像素?

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 查找圆形图案中心坐标报错

      0_1698374581311_111.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • RE: 查找圆形图案中心坐标报错
      from pyb import UART
      import sensor, image, time,pyb,struct
      import json
      import cpufreq
      
      EXPOSURE_TIME_SCALE = 1.0
      
      
      def main():
      
       sensor.reset()
       sensor.set_pixformat(sensor.GRAYSCALE)
       sensor.set_framesize(sensor.VGA)
      
       print("Initial exposure == %d" % sensor.get_exposure_us())
       print("db == %d" % sensor.get_gain_db())
       sensor.skip_frames(time = 500)
      
       sensor.set_auto_gain(False)
       sensor.set_auto_whitebal(False)
       sensor.set_auto_exposure(False,exposure_us=2000)
      
       sensor.skip_frames(time = 2000)#跳过多少毫秒的帧
       clock = time.clock()  # Create a clock object to track the FPS.
      
      
       uart2 = pyb.UART(3)
       uart2.init(115200, bits=8, parity=None, stop=1,read_buf_len=500)
      
       while(True):
          clock.tick()                    # Update the FPS clock.
          img = sensor.snapshot()
          print("Initial exposure == %d" % sensor.get_exposure_us())
          print("db == %d" % sensor.get_gain_db())
          print(clock.fps(),sensor.get_rgb_gain_db())
      
          for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 2, r_max = 100, r_step = 2):
             img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
             print(c)
      
      
      main()
      
      
      发布在 OpenMV Cam
      E
      e1hr
    • 查找圆形图案中心坐标报错
      def main():
       global Bd_num
       sensor.reset()
       sensor.set_pixformat(sensor.GRAYSCALE)
       sensor.set_framesize(sensor.VGA)
      
       print("Initial exposure == %d" % sensor.get_exposure_us())
       print("db == %d" % sensor.get_gain_db())
       sensor.skip_frames(time = 500)
      
       sensor.set_auto_gain(False![0_1698112339282_捕获.PNG](https://fcdn.singtown.com/bccd10ae-cfa4-4438-8179-f86bc66a7530.PNG) )
       sensor.set_auto_whitebal(False)
       sensor.set_auto_exposure(False,exposure_us=2000)
      
      # sensor.set_hmirror(True)
      # sensor.set_vflip(True)
       sensor.skip_frames(time = 2000)
       clock = time.clock()  # Create a clock object to track the FPS.
      
       uart2 = pyb.UART(3)
       uart2.init(115200, bits=8, parity=None, stop=1,read_buf_len=500)
      
       
       while(True):
          clock.tick()                    # Update the FPS clock.
          img = sensor.snapshot()
          print("Initial exposure == %d" % sensor.get_exposure_us())
          print("db == %d" % sensor.get_gain_db())
          print(clock.fps(),sensor.get_rgb_gain_db())
      
          for c in img.find_circles(threshold = 3500, x_margin = 10, y_margin = 10, r_margin = 10,r_min = 2, r_max = 100, r_step = 2):
              img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
              print(c)
      
      发布在 OpenMV Cam
      E
      e1hr
    • RE: openmv4怎么样实现识别圆形色环并打印出圆心的坐标?

      圆形识别中,出现这个报错是什么原因?
      sensor.reset()
      sensor.set_pixformat(sensor.GRAYSCALE) # 灰度更快
      sensor.set_framesize(sensor.VGA)
      sensor.skip_frames(time = 2000)
      clock = time.clock()
      0_1697423616142_捕获.PNG

      发布在 OpenMV Cam
      E
      e1hr
    • boot.py的作用是怎么实现的???

      0_1695106833544_启动模式.PNG请问脱机运行时,有运行boot.py吗?虚拟U盘里面没有这个文件啊?

      发布在 OpenMV Cam
      E
      e1hr
    • OpenMV如何脱机自检测?

      OpenMV如何脱机自检摄像头部分正常和自身单片机正常?

      发布在 OpenMV Cam
      E
      e1hr
    • 定时发送数组的问题!
      # Untitled - By: admin - 周四 9月 14 2023
      
      import sensor, image, time,pyb,struct
      from pyb import UART
      from pyb import Timer
      
      uart = pyb.UART(3)
      uart.init(115200, bits=8, parity=None, stop=1,read_buf_len=500)
      #a=0
      #output_str = 'a'
      
      def sending_data(x,y):
          data=struct.pack("<bbhhb",
              0xAA,
              0x55,
              int(x),
              int(y),
              0xCC)
          uart.write(data)
      
      def tick(timer):
      #    global uart
      #    global output_str
      #    uart.write(output_str)
           sending_data(x,y)
      
      tim = Timer(2, freq=2)      # create a timer object using timer 2 - trigger at 1Hz
      tim.callback(tick)          # set the callback to our tick function
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      clock = time.clock()
      
      
      m=0
      n=0
      while(True):
      
          clock.tick()
          img = sensor.snapshot()
          print(clock.fps())
          sending_data(m,n)
          m=m+1
          n=n+1
      

      请问这段代码如何改成中断定时发送

      发布在 OpenMV Cam
      E
      e1hr