我试图使用Android手机的相机检测LED灯的状态。 相机应用程序使用onpreviewframe方法获取每个帧并使用YUV文件的亮度部分(每个帧被保存在缓冲区中作为YUV文件,YUV的第一个宽度*高度字节是亮度部分并包括相应像素的灰度,我使用这些字节做出决定。)
目前,每帧都计算灰度平均值,并将其与阈值数进行比较,以确定该位是0还是1;我通过获取前50帧的灰度平均值来创建阈值数。 这个算法太简单,太弱而无法在不同的情况下保存,我希望它能够更强大。
我已经看到了一些关于我的问题的问题(**),但是他们没有问过我正在寻找的实际算法,因为我是图像处理的新手。
我的问题 -
我应该采用哪些算法来做出更好的决策?
如何(如果需要)创建更精确的阈值数量?
我可以使用任何来源(最好是在java中)吗?
* LED已固定,手机也是掌上电脑。
** OpenCV: Detect blinking lights in a video feed& openCV detect blinking lights