• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 摄像头在两个不同的地方启动,画面亮度不一样,导致测同一个地方的灰度值不同



    • 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) 
      


    • 原因:开机最开始会自动调节亮度。

      解决办法:使用手动曝光。sensor.set_auto_exposure(False, exposure_us = 100000)