1854|2

282

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

【智能网络台灯】11. MaixBit使用摄像头检测环境光强度 [复制链接]

 

过往分享

【2022得捷电子创新设计大赛】最晚开箱帖
【2022得捷电子创新设计大赛】1. ESP32-S2环境搭建及点灯
【智能网络台灯】2. 设置系统时间以及打印
【智能网络台灯】3. ESP32-S2 + lvgl使用
【智能网络台灯】4. ESP32-S2 板载按键使用
【智能网络台灯】5. ESP32-S2 使用sntp进行网络校时
【智能网络台灯】6. ESP32-S2解决RAM空间开销过大的问题

【智能网络台灯】7. 获取实时天气信息并解析

【智能网络台灯】8. Maix bit驱动RGB

【智能网络台灯】9. Maix bit驱动串口

【智能网络台灯】10. Esp32-S2驱动UART

 

前言

我的项目中需要根据环境光强度来自动调节台灯的亮度,就需要用到光线传感器,但是手头没有光线传感器,就想到了使用摄像头来检测环境光强度,通过资料了解到可以将RGB的图片转换成YUV的图片,其中的Y就是亮度,这是一个方式。但是经过对maixpy的学习,发现还有一个格式,就是LAB,其中L也图片的亮度,使用L也可以用来标记环境光强度,通过学习MaixPy,最后实现了对环境光检测,经过测试,基本可以满足要求。

资料:https://wiki.sipeed.com/soft/maixpy/zh/api_reference/machine_vision/image/image.html

使用maixpy对图像处理很简单。

下面简述我的方式。

 

实现过程

MaixPy的image的类image.get_statistics() 提供了对像素点的统计数据的获取,可以通过方法statistics.l_mean()获取到LAB格式中的L平均值,使用该平均值作为我们的当前光照强度。

单纯使用摄像头精度还是有限,但是对于我的项目来说已经够用了。

还可以对多张图片进行采样取平均值提高精确度或者对各个像素点进行分析,去掉亮度最低的像素点和最高的像素点再取平均值进行计算提高精确度等等。

下面是代码实现:

import sensor, lcd
import utime

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
# 垂直反转相机
sensor.set_vflip(1)
# 设置相机亮度为0
sensor.set_brightness(0)
# 开始撞去图像
sensor.run(1)
# 跳过不稳定帧
sensor.skip_frames()

lcd.init(freq=15000000)

while(True):
    img = sensor.snapshot()
    lcd.display(img)
    # 获取lab统计结果
    lab_color = img.get_statistics()
    # 获取图片亮度平均值,作为光照亮度
    l_avg = lab_color[0]
    print ("光照强度为:"+str(l_avg))
    utime.sleep_ms(1000)

测试效果

最新回复

 MaixBit使用摄像头检测环境光强度 检测出的精度与一般照度仪测试的结果对比怎样,这个精度主要与什么有关呢   详情 回复 发表于 2022-10-14 07:53
点赞 关注
 
 

回复
举报

6628

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

 MaixBit使用摄像头检测环境光强度 检测出的精度与一般照度仪测试的结果对比怎样,这个精度主要与什么有关呢

点评

一般光线传感器检测的光是直接照射的,摄像头一般是反射光,需要先拍一张照片,然后分析这个照片上的像素点,精度方面肯定是光线传感器要高一些。  详情 回复 发表于 2022-10-14 08:22
 
 
 

回复

282

帖子

2

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2022-10-14 07:53  MaixBit使用摄像头检测环境光强度 检测出的精度与一般照度仪测试的结果对比怎样,这个精度主要与什么 ...

一般光线传感器检测的光是直接照射的,摄像头一般是反射光,需要先拍一张照片,然后分析这个照片上的像素点,精度方面肯定是光线传感器要高一些。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表