我正在使用OpenCV在Android项目中工作,我正在使用表面来实现我自己的相机,因为我想向用户提供有关他们正在拍摄的照片的反馈,以帮助他们提高质量。我要做的是检测他们将拍摄的图像有多暗,并建议他们使用闪光灯。提前谢谢。
答案 0 :(得分:2)
如果您可以控制相机的参数,请在使用闪光灯之前考虑对它们进行调整。如果您想要全局曝光的 x2 因子,您可以:
现在回答这个问题,如果您已经知道如何使用OpenCV
访问图像中的像素,我首先建议您使用cvtColor
将其转换为灰度,然后您可以计算(对于每个图像) )像素强度之和(cv::sum
)并定义图像“太暗”的阈值。
伪代码的例子(这应该根据你的需要/应用程序进行改进):
while sum(pixels) < threshold
it_nb=0
exp_time += 0.1 (second)
if it_nb>fixed_limit or if (exp_time/gain cannot be increased anymore)
print 'use flash'
break