Como você detectaria algoritmicamente para uma determinada foto se o sol estava brilhando quando a foto foi tirada?
Exemplos
Uma amostra desta webcam no topo de uma montanha:
Claramente o sol está brilhando.
Nesta outra amostra, é muito menos óbvio:
Provavelmente, é possível detectar com facilidade se está nebuloso tentando identificar a pequena torre da igreja na capela no centro. No entanto, sabendo muito pouco sobre o processamento de imagens, eu ficaria surpreso se houvesse um (combinação de) algoritmo que pudesse dizer com segurança se há luz do sol ou não.
algorithms
image-processing
Marcel Stör
fonte
fonte
Respostas:
Se você puder acessar os metadados, poderá aplicar várias heurísticas:
Verifique a configuração de balanço de branco escolhida pela câmera para a foto. Basicamente, indica a temperatura da cor da luz no momento em que a foto foi tirada. Geralmente a luz solar é de cerca de 5500 Kelvin. Iluminação interna ou dias nublados, geralmente têm temperaturas diferentes.
Verifique as configurações de exposição . Geralmente, quando o sol brilha, há mais luz disponível, e isso influencia as seguintes configurações:
Nos velhos tempos da fotografia, a regra Sunny 16 era usada para estimar a exposição. E você pode usá-lo, juntamente com as informações da lista acima, para verificar se a foto foi tirada durante o dia.
Verifique se um flash disparou ou não.
Verifique a hora em que a foto foi tirada . Supondo que o usuário tenha configurado o relógio, você pode remover imediatamente as fotos tiradas à noite.
Se, no entanto, você deseja abordar esse problema simplesmente do ponto de vista do processamento de imagens. Posso dizer que a luz solar costuma ter maior contraste e arestas mais severas. Portanto, a análise do histograma e a localização de arestas duras podem fornecer uma boa indicação.
Supondo que as fotos que você está processando estejam em um formato de imagem não processada, você pode aplicar o mesmo truque de balanço de branco descrito acima. No entanto, isso não funciona para imagens padrão como jpeg ou png. Isso porque o processador de imagem na câmera já compensa a mudança na temperatura da cor e incorpora o resultado na imagem final, apenas registrando a definição de wb nos metadados.
fonte