Android - 减少相机(照片/视频)上的眩光

8

我正在尝试减少在拍摄反射表面(窗户、眼镜或其他移动设备)时产生的眩光。

我已经对这个问题进行了一些研究,似乎有一些算法存在。但我还没有找到一个编码实现。

我需要它的原因是我正在制作一款应用程序,可以使用您设备上的相机读取另一台设备屏幕上的不同颜色。如果有太多的眩光,颜色就无法正确读取。它需要能够区分16种颜色。

是否存在任何现有的实现方法?如果有,我该如何将它们实现到Android中?


这些算法存在于哪些编程语言中?你可以通过安卓NDK编写与本地c/c++代码交互的接口。 - Matt Wolfe
你几乎肯定需要使用NDK来实现你所描述的内容,Java实现可能会太慢了。 - Matt Wolfe
经过快速搜索,我发现了有关Google和MIT试图开发此算法的文章,因此我怀疑这并不是微不足道的。 - Zarwan
1
这在软件中很难实现。消除眩光是通过极化滤镜完成的,虽然使用带有偏振太阳镜的智能手机看起来很酷,但实际上并不实用。以下是一个视频,展示了@Zar提到的其中一种解决方案的工作原理:https://www.youtube.com/watch?v=xoyNiatRIh4 - aergistal
你可以尝试修改图像以减少反光,方法是找到具有高亮度和低饱和度(潜在反光)的像素值的区域(相邻的'n'个像素部分),然后降低像素本身的亮度并增加饱和度。这可能效果不太好,但通过调整和一些边缘平滑处理,你可能会得到一个可行的效果。 - Alea Kootz
显示剩余3条评论
1个回答

2
我建议在高斯模糊的基础上进行阈值处理,以检测图像中的亮点并将其去除。OpenCV是业界标准,也是进行图像处理的最佳选择。我建议你先在电脑上进行一些实验,确保流程正确,然后再移植到手机上。此外,要避免使用过于新奇/复杂的内容。
[1] 如何检测图像中的热点 [2] http://opencv.org/platforms/android.html

非常有趣。我一直在做一些实验。我会告诉你它的进展如何。 - user3011902

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接