摄像头在两个不同的地方启动,画面亮度不一样,导致测同一个地方的灰度值不同
-
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)