• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 同样光线同样曝光值,不同情况下,显示不一样



    • 画面由亮转全黑,再由全黑慢慢变亮。画面不会恢复到原来的亮度,再重新运行程序画面亮度和原来的差不多了。曝光值设置都是一样的。
      曝光代码如下:

          sensor.reset() #清除掉之前摄像头存在的代码对于图片的设置
          sensor.set_pixformat(sensor.GRAYSCALE) #设置图片的格式 RGB565 GRAYSCALE
          sensor.set_framesize(sensor.VGA)#设置采集到图片的分辨率
          sensor.skip_frames(time = 2000) #跳过一些刚开始不稳定的时候再开始读取图像2000
      #自动增益和白平衡
          sensor.set_auto_gain(False) # must be turned off for color tracking
          sensor.set_auto_whitebal(False) # must be turned off for color tracking
          current_exposure_time_in_microseconds = sensor.get_exposure_us()
          print("Current Exposure == %d" % current_exposure_time_in_microseconds)
          sensor.set_auto_exposure(False, \
          exposure_us = int(16496 * EXPOSURE_TIME_SCALE))#固定曝光*倍数
          sensor.skip_frames(time = 2000) #跳过一些刚开始不稳定的时候再开始读取图像2000
          print("New exposure == %d" % sensor.get_exposure_us())
      

      初始画面
      0_1621821613179_69765b78-e081-4a91-9657-18766ef3eb82-image.png
      变黑画面
      0_1621821574488_d6f84194-11fa-4a00-a1aa-f017e5a1f9d1-image.png
      等变亮后的画面
      0_1621821770223_634660d0-aec8-4c6f-9dda-fbb65d4c3d26-image.png
      与上一幅图同样光线和同样曝光值,显示却更亮一点。
      0_1621822032634_50d80028-3963-49cb-a8bd-6576af177622-image.png
      这个要怎么解决。



    • @zdey同样光线同样曝光值,不同情况下,显示不一样 中说:

      运行程序画面亮度和原来的差不多了。曝光值设置都是一样的。
      曝光代码如下:

      后来变亮的画面,是重新运行程序的结果



    • 除了自动曝光,还要把自动增益关掉。



    • 我想让增益不变,曝光不变。

      sensor.set_auto_gain(False, gain_db_ceiling = 4.0)
      

      自动增益设置关闭,后边那个参数好像没用,设置了以后,每次开机增益也会发生改变。
      怎么能让增益固定一个值。



    • 灰度图像,不是rgb图像



    • 我看了一下你的代码,曝光是自动配置的,没有写死。

      好的代码:

      import sensor
      
      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)
      sensor.set_auto_exposure(False, 10000)
      sensor.skip_frames(time = 2000) #跳过一些刚开始不稳定的时候再开始读取图像2000
      
      
      while True:
          img=sensor.snapshot()
          print("exposure == %d" % sensor.get_exposure_us())
          print("gain_db == %d" % sensor.get_gain_db())