Usando Algodoo e Paint, fiz essas seis imagens monocromáticas 300 × 300 de quatro formas convenientes:
Esta classe de imagens possui as seguintes propriedades:
- Eles sempre são 300 × 300 pixels, monocromáticos (somente preto e branco) e têm exatamente quatro regiões brancas que correspondem a um quadrado, um círculo, um triângulo e uma engrenagem.
- As formas nunca se sobrepõem ou se tocam, nem tocam a borda da imagem ou ficam fora dos limites.
- As formas sempre têm o mesmo tamanho, mas podem ser giradas e posicionadas de qualquer maneira.
(As formas também têm áreas iguais, embora, quando rasterizadas dessa maneira, é improvável que a contagem de pixels seja exatamente equivalente.)
Desafio
Escreva o programa ou a função mais curta possível que capte o nome do arquivo dessa imagem e gire todos os pixels brancos ...
- vermelho
(255, 0, 0)
se estiverem na praça. - azul
(0, 0, 255)
se estiverem no círculo. - verde
(0, 255, 0)
se estiverem no triângulo. - amarelo
(255, 255, 0)
se estiverem na engrenagem.
por exemplo
Detalhes
Seu programa deve funcionar para efetivamente todas as imagens de entrada possíveis. (Somente imagens monocromáticas válidas de 300 × 300 serão inseridas.) As seis imagens que forneci são meramente exemplos. Você pode não codificar sua saída em seu programa.
Você não pode usar bibliotecas ou funções de visão computacional, internas ou externas. O objetivo é fazer isso usando suas próprias operações em nível de pixel. Você pode usar bibliotecas de imagens que simplesmente permitem abrir e modificar imagens (por exemplo, PIL para Python).
Você pode usar qualquer formato de arquivo de imagem sem perda comum para entrada e saída, desde que se atenha ao esquema de cores.
Você pode observar o nome do arquivo da imagem como argumento de função, de stdin ou da linha de comando. A imagem de saída pode ser salva em um novo arquivo, no mesmo arquivo ou simplesmente exibida.
Pontuação
O envio com o menor número de bytes vence. Posso testar envios com imagens adicionais para determinar sua validade.