导航

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

    4a1w 发布的帖子

    • openmv连接dht11模块,网上找的代码看不懂,不过程序可以用
      from pyb import dht_readinto
      class DHTBase:
          def __init__(self, pin):
              self.pin = pin
              self.buf = bytearray(5)
      
          def measure(self):
              buf = self.buf
              dht_readinto(self.pin, buf)
              if (buf[0] + buf[1] + buf[2] + buf[3]) & 0xff != buf[4]:
                  raise Exception("checksum error")
      
      class DHT11(DHTBase):
          def humidity(self):
              return self.buf[0]
      
          def temperature(self):
              return self.buf[2]
      
      class DHT22(DHTBase):
          def humidity(self):
              return (self.buf[0] << 8 | self.buf[1]) * 0.1
      
          def temperature(self):
              t = ((self.buf[2] & 0x7f) << 8 | self.buf[3]) * 0.1
              if self.buf[2] & 0x80:
                  t = -t
              return t
      
      

      from pyb import dht_readinto,在官网没有找到pyb模块中dht_readinto这个函数

      发布在 OpenMV Cam
      4
      4a1w
    • 摄像头在两个不同的地方启动,画面亮度不一样,导致测同一个地方的灰度值不同
      import sensor, image, time
      
      sensor.reset() # 初始化摄像头
      sensor.set_pixformat(sensor.GRAYSCALE) # 设置像素格式
      sensor.set_framesize(sensor.B128X128) # 设置分辨率
      sensor.set_auto_exposure(False) # 关闭自动曝光
      sensor.set_auto_whitebal(False) # 关闭自动白平衡
      sensor.set_auto_gain(False) # 关闭自动增益
      sensor.skip_frames(time = 2000) # 跳过2秒,让摄像头稳定
      
      
      ROI=(43,43,43,43)
      
      # 获取图像并计算灰度平均值
      def get_gray(img):
          statistics=img.get_statistics(roi=ROI)
          gray_mean = statistics.mean()   #gray_mean越小越白
          img.draw_rectangle(ROI)
          return(gray_mean)
      
      # 主循环
      while(True):
          img = sensor.snapshot()
          result=get_gray(img)
      # 根据灰度平均值来判断是否是纯净水或污水
          if result < 0.2:
              print("纯净水! 浑浊度= {:.2%}NTU".format(result))
          else:
              print("污水! 浑浊度= {:.2%}NTU".format(result))
      
      
      ![1_1681954591482_Snipaste_2023-04-19_20-03-48.png](https://fcdn.singtown.com/28c82252-d6f3-49f7-99fe-4e29d66de16a.png) ![0_1681954591479_Snipaste_2023-04-19_20-03-27.png](https://fcdn.singtown.com/6b9608cc-897c-404e-ad1f-db7cf8ca47ee.png) 
      
      发布在 OpenMV Cam
      4
      4a1w
    • RE: 运行例程21-感光元件手动白平衡控制后输出一直为(0,0,0)

      openmv如何避免光照强度不同的影响

      发布在 OpenMV Cam
      4
      4a1w
    • 运行例程21-感光元件手动白平衡控制后输出一直为(0,0,0)
      # 感光元件手动白平衡控制
      #
      # 此示例显示如何手动控制相机传感器的白平衡增益,而不是让自动白平衡控制运行。
      
      # 通过调整R/G/B增益值使得图像的平均颜色为灰色来实现白平衡。 
      # 自动白平衡(AWB)算法可以为您完成此操作,但每次打开相机时通常会得到不同的结果,这使得难以正确地进行颜色跟踪设置。 
      # 通过手动记录您喜欢的增益值,然后在启动时强制它们到传感器,您可以控制相机看到的颜色。
      
      import sensor, image, time
      
      sensor.reset()                      # 复位并初始化传感器。
      sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
      #设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种
      
      sensor.set_framesize(sensor.QVGA)   # 将图像大小设置为QVGA (320x240)
      
      sensor.skip_frames(time = 2000)     # 等待设置生效。
      clock = time.clock()                # 创建一个时钟对象来跟踪FPS帧率。
      
      # 您可以在此处控制白平衡增益。 第一个值是db中的R增益,然后是db中的G增益,然后是db中的B增益。
      #
      # 取消注释以下行使用您喜欢的增益值(从打印输出中获取)。
      #
      # sensor.set_auto_whitebal(False, rgb_gain_db = (0.0, 0.0, 0.0))
      
      # 注意:为增益设置(0.0,0.0,0.0)会产生接近于零的值。不要指望进入的确切值等于出来的值。
      
      while(True):
          clock.tick()                    # 更新FPS帧率时钟。
          img = sensor.snapshot()         # 拍一张照片并返回图像。
          print(clock.fps(), \
              sensor.get_rgb_gain_db())   # 输出AWB当前RGB增益。
      
      
      发布在 OpenMV Cam
      4
      4a1w
    • RE: 升级到2.6.9版本,固件升级后,相机初始化失败,颜色不正常?

      @kidswong999 为什么运行该代码后,输出的参数全是(0,0,0),初始化摄像头还是有时候暗有时候亮。

      发布在 OpenMV Cam
      4
      4a1w
    • 报错AttributeError: 'Image' object has no attribute 'to_hsv'
      import sensor, image, time
      
      # 初始化摄像头
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      # 设置颜色阈值,以分离污水和纯净水
      green_threshold = (0, 80, -70, -10, 0, 30)
      blue_threshold = (0, 30, -10, 10, -50, 0)
      
      # 设置形态学操作的内核大小和迭代次数
      kernel_size = 3
      morph_iterations = 2
      
      while(True):
          # 捕获图像
          img = sensor.snapshot()
      
          # 将图像转换为HSV颜色空间
          img_hsv = img.to_hsv()    #一直报错
      
          # 分离污水和纯净水的颜色通道
          img_green = img_hsv.channel(1)
          img_blue = img_hsv.channel(2)
      
          # 对颜色通道应用颜色阈值
          img_green_binary = img_green.binary([green_threshold])
          img_blue_binary = img_blue.binary([blue_threshold])
      
          # 对二值化图像应用形态学操作,以去除噪点和进一步分离污水和纯净水
          kernel = image.get_kernel(kernel_size, kernel_size)
          img_green_binary = img_green_binary.erode(kernel, iterations=morph_iterations)
          img_green_binary = img_green_binary.dilate(kernel, iterations=morph_iterations)
          img_blue_binary = img_blue_binary.erode(kernel, iterations=morph_iterations)
          img_blue_binary = img_blue_binary.dilate(kernel, iterations=morph_iterations)
      
          # 计算污水和纯净水的像素数
          green_pixels = img_green_binary.count(True)
          blue_pixels = img_blue_binary.count(True)
      
          # 计算污水和纯净水的比例
          water_ratio = green_pixels / (green_pixels + blue_pixels)
      
          # 打印污水和纯净水的比例
          print("Water ratio: %f" % water_ratio)
      
          # 暂停一段时间,以允许下一次循环
          time.sleep(100)
      
      发布在 OpenMV Cam
      4
      4a1w
    • RE: 如何用openmv模块检测污水和净水啊,没有思路

      @kidswong999 有图片,不过污水不是特别明显,人眼挺好辨别,openmv观察不是特别明显!![0_1678849863853_IMG_20230315_110636.jpg](正在上传 100%)

      发布在 OpenMV Cam
      4
      4a1w
    • 如何用openmv模块检测污水和净水啊,没有思路

      ☹

      发布在 OpenMV Cam
      4
      4a1w