Como iremos trabalhar com imagens, a biblioteca utilizada será a Pillow, um fork moderno do antigo PIL - Python Image Library O seu import mantém-se o mesmo: PIL, mesmo se tratando de uma lib diferente. Lê o arquivo de imagem e transforma em um objeto PIL.Image. Esse objeto contém todos os pixels da imagem e suas cores (em formato RGB, por exemplo).
Obs: O Pillow não mostra a imagem diretamente (só carrega e edita). Para visualizar, você precisa de outra biblioteca (no caso, o matplotlib).
Toda cor pode ser decomposta em RGB (vermelho, verde, azul), mas o que importa para a arte é:
- Tom (matiz): "Qual cor?" (ex.: vermelho-sangue vs. azul-celeste).
- Saturação: "É vibrante ou opaca?" (cores intensas vs. pastéis).
- Luminosidade: "É clara ou escura?" (um amarelo claro vs. um roxo escuro).
No código:
- A média revela se a obra é clara/escura (luminosidade).
- O desvio padrão mostra se as cores são consistentes ou contrastantes (saturação).
- A moda indica qual tom específico domina (matiz).

