Usando Algodoo y Paint hice estas seis imágenes monocromáticas de 300 × 300 de cuatro formas convenientes:
Esta clase de imágenes tiene las siguientes propiedades:
- Siempre son 300 × 300 píxeles, monocromáticos (solo en blanco y negro), y tienen exactamente cuatro regiones blancas que corresponden a un cuadrado, un círculo, un triángulo y un engranaje.
- Las formas nunca se superponen o se tocan entre sí, ni tocan el borde de la imagen ni se salen de los límites.
- Las formas siempre tienen el mismo tamaño, pero pueden rotarse y colocarse de cualquier manera.
(Las formas también tienen áreas iguales, aunque cuando se trazan así, es poco probable que sus recuentos de píxeles sean exactamente equivalentes).
Desafío
Escriba el programa o función más breve posible que tome el nombre de archivo de dicha imagen y convierta todos los píxeles blancos ...
- rojo
(255, 0, 0)
si están en la plaza. - azul
(0, 0, 255)
si están en el círculo. - verde
(0, 255, 0)
si están en el triángulo. - amarillo
(255, 255, 0)
si están en la marcha.
p.ej
Detalles
Su programa debería funcionar para todas las imágenes de entrada posibles. (Solo se ingresarán imágenes monocromáticas válidas de 300 × 300). Las seis imágenes que he proporcionado son meramente ejemplos, no puede codificar su salida en su programa.
No puede utilizar bibliotecas o funciones de visión artificial, integradas o externas. El punto es hacer esto usando sus propias operaciones a nivel de píxel. Puede usar bibliotecas de imágenes que simplemente le permiten abrir y modificar imágenes (por ejemplo, PIL para Python).
Puede utilizar cualquier formato de archivo de imagen sin pérdida común para entrada y salida, siempre y cuando se adhiera al esquema de color.
Puede tomar el nombre de archivo de la imagen como argumento de función, desde stdin o desde la línea de comando. La imagen de salida puede guardarse en un nuevo archivo, el mismo archivo, o simplemente mostrarse.
Puntuación
El envío con la menor cantidad de bytes gana. Puedo probar los envíos con imágenes adicionales para determinar su validez.