文档库
运动、亮点与亮度统计
运动检测:先把相机固定
烧录motion,先让画面静止,再把手或物体移入画面。算法把图像采样到80×60网格,与上一张处理帧做灰度差分。第一次没有历史帧,不会得到正常帧差结果。
默认灰度差阈值motion_threshold=24,最少变化采样点motion_min_samples=120。框是全部变化点的总包围框,不是人体轮廓,也不是物体检测器。
相机晃动、灯光闪烁、移动阴影、自动曝光变化都会触发大片变化。若框经常接近全屏,先固定相机和光照,再尝试把灰度差阈值提高到40–60。提高最少点数控制是否触发,不会直接把框变紧;提高JPEG质量也不会收紧框。
输出type=5,id=1,aux为变化采样点数量。练习分别记录固定相机和轻微移动相机时的差别。把模块装在行走机器人上后,背景随相机变化,这个算法不能直接作为可靠的动态障碍物检测器。
亮点检测:高亮不等于激光类别
烧录bright,用手电把光斑投在较暗的墙面,观察框和中心。不要用强光或激光直射眼睛与镜头。
算法以2×2步长采样,要求灰度大于bright_threshold(默认235),同时最大RGB通道大于245;最少点数默认4。因此只降低灰度阈值,并不意味着所有普通亮区都会通过另一条件。
输出type=5,id=2。金属反光、窗户和灯也可能触发;本案例不识别激光的颜色或种类。让光斑离开画面,再用反光物体对照,确认误检范围。
亮度统计:给其他实验建立参照
烧录stats,先看正常室内画面,再用手遮挡部分镜头、改变照明。算法每4个像素采样,输出灰度均值与方差。
输出type=5,id=3,x是均值(灰度标度),y是方差并受int16字段范围限制。这时x/y不是目标坐标;detected=true只是表示产生了统计结果,不代表发现物体。数值不能直接换算为lux。
均值帮助比较明暗,方差帮助比较画面明暗差异。观察均值接近高端且细节消失的画面,理解过曝为什么会破坏色块/二维码输入。不要让上位机不分type/id,把亮度均值误当成转向偏差。
完成这三组实验后,应能分辨:图像变了、出现高亮点、环境变亮是三种不同的观察结果,只有结合场景才具有控制意义。